使用Spring Security设置会话最大时长
可行,具体实现思路如下
- 核心是同时维护两套会话过期规则:
- 闲置超时规则:保持你已设置的15分钟无操作即过期
- 强制最大时长规则:会话创建后满12小时,无论期间是否有活跃操作,直接过期
- 具体实现步骤:
- 在会话创建时,额外存储一个
session_created_at字段,记录会话生成的时间戳 - 用户每次发起请求时,同时检查两个条件:
- 当前时间与会话最后活跃时间的差值是否超过15分钟
- 当前时间与
session_created_at的差值是否超过12小时
- 只要满足任意一个条件,立即销毁当前会话,要求用户重新登录
- 在会话创建时,额外存储一个
- 注意点:
- 两套规则独立生效,比如用户在第11小时59分有操作,闲置超时会被重置,但到第12小时时,依然会触发强制过期
- 不同技术栈的实现细节有差异,但核心逻辑通用:比如Java里可以给HttpSession添加自定义属性存储创建时间,Express框架中可以通过session中间件扩展过期判断逻辑
内容的提问来源于stack exchange,提问作者berimbolo
相关产品推荐
相关产品推荐

