如何延长express-oidc-connect中OIDC登录后appSession Cookie的过期时间?
你在res.oidc.login里添加的max_age参数是OIDC协议的标准参数,作用是要求用户的身份验证时间不能超过指定值(超过则需重新登录),并非用来设置会话Cookie的过期时间,所以修改这个参数不会生效。
要调整appSession Cookie的过期时间,需在OIDC中间件的全局配置里设置,具体操作如下:
- 找到初始化
express-openid-connect中间件的代码段 - 在配置对象中添加
session.cookie.maxAge,值设为30天对应的毫秒数(计算方式:30×24×60×60×1000 = 2592000000)
示例配置代码:
const { auth } = require('express-openid-connect'); app.use(auth({ issuerBaseURL: '你的身份提供商地址', baseURL: '你的应用部署地址', clientID: 'client_id', secret: '你的客户端密钥', session: { cookie: { maxAge: 2592000000, // 对应30天有效期 // 按需添加其他Cookie安全配置,比如secure: true、httpOnly: true等 } } }));
额外注意点:
- 如果你的应用使用Redis这类持久化会话存储,需同步修改会话存储的过期时间,确保和Cookie有效期一致,避免会话提前失效。
- 你请求的
offline_accessscope用于获取刷新令牌,和会话Cookie过期时间无关,但如果需要长期维持登录状态,可借助刷新令牌在会话过期后自动续期。
内容的提问来源于stack exchange,提问作者Penny Smith
相关产品推荐
相关产品推荐

