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

NextAuth 4.21.1集成Keycloak遇JWT_SESSION_ERROR报错求助

问题原因及解决方法

这个错误是NextAuth生成JWT会话时,时间格式不符合依赖库jose的要求导致的。结合你的配置和错误栈,可从以下方向排查修复:

  • 显式同步会话与JWT的过期时间
    你当前仅配置了session.maxAge,但未显式指定JWT的过期时间,可能导致两者逻辑不匹配。修改配置,让JWT有效期与会话保持一致:

    export default NextAuth({
      providers: [
        KeycloakProvider({
          clientId: process.env.KEYCLOAK_ID,
          clientSecret: process.env.KEYCLOAK_SECRET,
          issuer: process.env.KEYCLOAK_ISSUER,
        }),
      ],
      session: {
        strategy: "jwt", // 显式指定会话策略,避免隐式逻辑冲突
        maxAge: 600,
      },
      jwt: {
        maxAge: 600, // 与session.maxAge保持一致
      },
      callbacks: {},
      debug: true,
    });
    
  • 检查Node.js版本兼容性
    NextAuth 4.21.1要求Node.js版本≥14.6.0,若你的版本过低,会导致jose库的时间解析逻辑异常。运行node -v查看版本,低于要求则升级到14.6.0及以上。

  • 重新生成标准的NEXTAUTH_SECRET
    若当前密钥生成不规范,也可能引发JWT异常。用以下命令重新生成标准密钥:

    openssl rand -hex 32
    

    将生成的字符串替换.env中的NEXTAUTH_SECRET。

  • 临时测试默认有效期
    若上述方法无效,可暂时注释session.maxAge配置,使用NextAuth默认的30天会话有效期,验证是否是自定义有效期的格式问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:08:14