OAuth2认证的会话超时限制是在什么位置定义的?
OAuth2客户端会话15分钟超时配置位置说明
1. 应用容器级配置(通用基础配置)
绝大多数场景下,OAuth2客户端依赖的会话时效默认继承Web服务容器的全局配置,15分钟配置方式如下:
- Spring Boot内置Tomcat/Jetty/Undertow容器:在application配置文件中添加对应配置
配置文件格式(.properties):server.servlet.session.timeout=15m
配置文件格式(.yml):server: servlet: session: timeout: 15m
2. 安全框架专属配置
如果配置容器全局时效后不生效,说明使用的安全框架覆盖了默认配置,需单独调整:
- Spring Security OAuth2客户端场景:
配置文件可直接添加项:spring.security.oauth2.client.session.timeout=900
代码硬编码配置方式:@Bean public HttpSessionListener sessionListener() { return new HttpSessionListener() { @Override public void sessionCreated(HttpSessionEvent event) { // 设置会话最大不活跃间隔为900秒即15分钟 event.getSession().setMaxInactiveInterval(900); } }; } - Node.js Express + passport-oauth2场景:
修改express-session初始化配置:app.use(session({ secret: '自定义密钥', resave: false, saveUninitialized: false, cookie: { maxAge: 15 * 60 * 1000 // 单位为毫秒,对应15分钟 } })) - Python Django + social-auth场景:
在settings.py中添加配置:SESSION_COOKIE_AGE = 900
3. 联动配置检查
需同步核对OAuth2授权服务端返回的access_token、refresh_token过期时间,如果token过期时间短于15分钟,用户会在token过期时被强制跳转登录,需调整授权端token时效与会话时效匹配,否则配置不生效。
内容的提问来源于stack exchange,提问作者vic
相关产品推荐
相关产品推荐

