权限认证框架sa-token的token有效期与实时续签

2023-11-30 04:08

本文主要是介绍权限认证框架sa-token的token有效期与实时续签,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

sa-token

sa-token 是一个非常强大的JavaWeb权限认证框架,其集成了诸多好用的特性,诸如:登录验证、权限验证、自定义session会话、踢人下线 等等均可以在框架中一行代码完成调用,官网地址:http://sa-token.dev33.cn/

sa-token的令牌有效期

sa-token 提供两种token自动过期策略,分别是timeoutactivity-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供你操作:

  • StpUtil.checkActivityTimeout(): 检查当前token 是否已经[临时过期],如果已经过期则抛出异常
  • StpUtil.updateLastActivityToNow(): 续签当前token:(将 [最后操作时间] 更新为当前时间戳)
  • 注意:在手动续签时,即时token已经 [临时过期] 也可续签成功,如果此场景下需要提示续签失败,可采用先检查再续签的形式保证token有效性
  • 例如以下代码:
	// 先检查是否已过期StpUtil.checkActivityTimeout();// 检查通过后继续续签StpUtil.updateLastActivityToNow();

timeout与activity-timeout可以同时使用吗?

可以同时使用!
两者的认证逻辑彼此独立,互不干扰,可以同时使用。






程序员交流qq群:782974737 点击加入

这篇关于权限认证框架sa-token的token有效期与实时续签的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/435557

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

ZooKeeper 中的 Curator 框架解析

Apache ZooKeeper 是一个为分布式应用提供一致性服务的软件。它提供了诸如配置管理、分布式同步、组服务等功能。在使用 ZooKeeper 时,Curator 是一个非常流行的客户端库,它简化了 ZooKeeper 的使用,提供了高级的抽象和丰富的工具。本文将详细介绍 Curator 框架,包括它的设计哲学、核心组件以及如何使用 Curator 来简化 ZooKeeper 的操作。 1

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

Spring Framework系统框架

序号表示的是学习顺序 IoC(控制反转)/DI(依赖注入): ioc:思想上是控制反转,spring提供了一个容器,称为IOC容器,用它来充当IOC思想中的外部。 我的理解就是spring把这些对象集中管理,放在容器中,这个容器就叫Ioc这些对象统称为Bean 用对象的时候不用new,直接外部提供(bean) 当外部的对象有关系的时候,IOC给它俩绑好(DI) DI和IO

Sentinel 高可用流量管理框架

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 Sentinel 具有以下特性: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应