设置会话有效期及自动续期

场景描述

用户登录门户后,系统默认12小时过期。用户希望实现登录后,无操作10分钟则退出登录。目前会话过期后,不能跳转到登录页,访问会报401的错。

实现思路

将会话有效期调整为10分钟,并设置自动续期。

实现步骤

通过在企业门户中定义新的app.m,重新注册login的authentication插件和服务的authentication插件,设置新的有效期及自动续期

1 打开企业门户ide

参考《开发手册-基础篇-桌面端门户-门户定制》文档,打开企业门户ide,切换到代码页

2 注册login的authentication插件

在model/service/main目录下新建一个目录,目录名可以自定义,例如:login,在这个目录下新建一个文件app.m,在app.m中添加如下代码,其中

  • expire是有效期的值,不能小于300(单位:秒)
  • auto_refresh_session是自动续期
  • order越大越靠后执行,会覆盖前面的设置
<service order="999" target="kong2">
    <plugin name="authentication" enabled="true" api_name="login">
<% raw %>            <app_key>{{.Env.API_KEY}}</app_key><% endraw %>
<% raw %>        <app_secret>{{.Env.API_SECRET}}</app_secret><% endraw %>
        <expire>600</expire>
<% raw %>        <redis_timeout>{{.Env.AUTHENTICATION_REDIS_TIMEOUT}}</redis_timeout><% endraw %>
<% raw %>        <redis_host>{{.Env.AUTHENTICATION_REDIS_HOST}}</redis_host>
        <redis_port>{{.Env.AUTHENTICATION_REDIS_PORT}}</redis_port><% endraw %>
<% raw %>        <redis_password>{{.Env.AUTHENTICATION_REDIS_PASSWORD}}</redis_password><% endraw %>
        <auto_refresh_session>true</auto_refresh_session>
    </plugin>
</service>

效果如下图所示

3 注册所有服务的authentication插件

在model/service/main目录下新建一个目录,目录名可以自定义,例如:login2,在这个目录下新建一个文件app.m,在app.m中添加如下代码,其中

  • expire是有效期的值,不能小于300(单位:秒)
  • auto_refresh_session是自动续期
  • order越大越靠后执行,会覆盖前面的设置

<?xml version="1.0" encoding="UTF-8" ?> <% raw %><% endraw %> <% raw %> <name>{{@getItemData(serviceName)@}}</name><% endraw %> <% raw %> <request_path>/{{@getItemData(serviceName)@}}</request_path><% endraw %> false true <% raw %> <upstream_url>{{@getItemServiceUrl(serviceName)@}}</upstream_url><% endraw %>

<plugin name="authentication" enabled="true">

<% raw %> {{.Env.API_KEY}}<% endraw %> <% raw %> {{.Env.API_SECRET}}<% endraw %> 600 system true true </plugin>

</service>

效果如下图所示

4 发布门户,用户重新登录

依次点保存、提交并更新、发布门户应用。

重新登录企业门户后,打开浏览器的开发人员工具,在应用中查看Cookie中的user_session的有效期(浏览器里面显示的是零时区时间),如下图所示

用户操作,接近到期时间,系统自动续期(浏览器里面显示的是零时区时间),如下图所示

results matching ""

    No results matching ""

    results matching ""

      No results matching ""