我仅将 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 }
来自文档:
NextAuth.js 中的 Cookie 默认情况下是分块的,这意味着一旦它们 达到 4kb 限制,我们将使用 .{number} 创建一个新的 cookie 解析 / 时以正确的顺序添加后缀并重新组装 cookie 阅读它们。引入这一点是为了避免尺寸限制,这可以 当用户想要在其 sessionToken 中存储附加数据时发生, 例如。
如果您连接两个令牌,您应该获得完整的令牌。