为什么 Next-Auth 在浏览器中创建两个令牌?

问题描述 投票:0回答:1

我仅将 Next Auth 与 1 个提供商(Azure AD)一起使用。通常,Next-Auth 会创建一个会话令牌 (

__Secure-next-auth.session-token
),我可以将其发送到后端并解码以进行身份验证。

最近这个令牌消失了,取而代之的是两个令牌:

  • __Secure-next-auth.session-token.0
  • __Secure-next-auth.session-token.1

这些令牌都不是我的后端可以解码的格式正确的 JWT。

这些新代币是什么?如何取回旧代币?


route.ts

import NextAuth from "next-auth"
import AzureADProvider from "next-auth/providers/azure-ad"
    
const providers = [
    AzureADProvider({
        clientId: process.env.AZURE_AD_CLIENT_ID || '',
        clientSecret: process.env.AZURE_AD_CLIENT_SECRET || '',
        tenantId: process.env.AZURE_AD_TENANT_ID,
    }),

]

export const authOptions = {
    providers: providers
}

const handler = NextAuth(authOptions)

export { handler as GET, handler as POST }
authentication next.js jwt next-auth
1个回答
0
投票

来自文档

NextAuth.js 中的 Cookie 默认情况下是分块的,这意味着一旦它们 达到 4kb 限制,我们将使用 .{number} 创建一个新的 cookie 解析 / 时以正确的顺序添加后缀并重新组装 cookie 阅读它们。引入这一点是为了避免尺寸限制,这可以 当用户想要在其 sessionToken 中存储附加数据时发生, 例如。

如果您连接两个令牌,您应该获得完整的令牌。

© www.soinside.com 2019 - 2024. All rights reserved.