sa-token
sa-token
是一个很是强大的JavaWeb权限认证框架,其集成了诸多好用的特性,诸如:登陆验证、权限验证、自定义session会话、踢人下线 等等都可以在框架中一行代码完成调用,官网地址:http://sa-token.dev33.cn/java
sa-token的令牌有效期
sa-token
提供两种token自动过时策略,分别是timeout
与activity-timeout
,其详细用法以下:程序员
timeout
timeout
表明token的长久有效期,单位/秒,例如将其配置为2592000
(30天),表明在30天后,token一定过时,没法继续使用timeout
没法续签,想要继续使用必须从新登陆timeout
的值配置为-1后,表明永久有效,不会过时
activity-timeout
activity-timeout
表明临时有效期,单位/秒,例如将其配置为1800
(30分钟),表明用户若是30分钟无操做,则此token会当即过时- 若是在30分钟内用户有操做,则会再次续签30分钟,用户若是一直操做则会一直续签,直到连续30分钟无操做,token才会过时
activity-timeout
的值配置为-1后,表明永久有效,不会过时,此时也无需频繁续签
关于activity-timeout的续签
若是activity-timeout
配置了大于零的值,sa-token
会在登陆时开始计时,在每次直接或间接调用getLoginId()
时进行一次过时检查与续签操做。 此时会有两种状况:算法
- 一种是会话无操做时间太长,token已通过期,此时框架会抛出
NotLoginException
异常(场景值=-3), - 另外一种则是会话在
activity-timeout
有效期内经过检查,此时token能够成功续签
我能够手动续签吗?
能够! 若是框架的自动续签算法没法知足您的业务需求,你能够进行手动续签,sa-token
提供两个API供你操做:session
StpUtil.checkActivityTimeout()
: 检查当前token 是否已经[临时过时],若是已通过期则抛出异常StpUtil.updateLastActivityToNow()
: 续签当前token:(将 [最后操做时间] 更新为当前时间戳)- 注意:在手动续签时,即时token已经 [临时过时] 也可续签成功,若是此场景下须要提示续签失败,可采用先检查再续签的形式保证token有效性
- 例如如下代码:
// 先检查是否已过时 StpUtil.checkActivityTimeout(); // 检查经过后继续续签 StpUtil.updateLastActivityToNow();
timeout与activity-timeout能够同时使用吗?
能够同时使用! 二者的认证逻辑彼此独立,互不干扰,能够同时使用。框架
<br/><br/><br/><br/> 程序员交流qq群:782974737 点击加入url