You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何延长express-oidc-connect中OIDC登录后appSession Cookie的过期时间?

解决appSession Cookie过期时间无法延长至30天的问题

你在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_access scope用于获取刷新令牌,和会话Cookie过期时间无关,但如果需要长期维持登录状态,可借助刷新令牌在会话过期后自动续期。

内容的提问来源于stack exchange,提问作者Penny Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:45:02