权限认证框架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

相关文章

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

深入浅出SpringBoot WebSocket构建实时应用全面指南

《深入浅出SpringBootWebSocket构建实时应用全面指南》WebSocket是一种在单个TCP连接上进行全双工通信的协议,这篇文章主要为大家详细介绍了SpringBoot如何集成WebS... 目录前言为什么需要 WebSocketWebSocket 是什么Spring Boot 如何简化 We

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

nginx中端口无权限的问题解决

《nginx中端口无权限的问题解决》当Nginx日志报错bind()to80failed(13:Permissiondenied)时,这通常是由于权限不足导致Nginx无法绑定到80端口,下面就来... 目录一、问题原因分析二、解决方案1. 以 root 权限运行 Nginx(不推荐)2. 为 Nginx

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间