如何修复 Next-Auth 引发的 NO_SECRET 警告

Las*_*eed 17 next.js next-auth

我有一个使用 Next Auth 的 Next js 应用程序。在开发过程中,我不断收到警告,要求我设置秘密,但我不知道应该在哪里设置。

根据此参考资料,我发现我只需要运行即可openssl rand -base64 32获取秘密,但我不知道将其放在哪里

Las*_*eed 19

在 [...nextauth].js 外部提供程序和回调中,您可以设置秘密及其值。由于建议将这些值存储在环境变量中,因此您可以执行以下操作

export default NextAuth({
 
  providers: [ 
  ],
  callbacks: {
  },
  secret: process.env.JWT_SECRET,
});
Run Code Online (Sandbox Code Playgroud)


小智 13

openssl rand -base64 32您应该在 Linux 终端中插入命令,然后它将生成一个令牌,以便在变量名为 的 .env 文件上使用它NEXTAUTH_SECRET=token_generated。因此该错误[next-auth][warn][NO_SECRET]将不会再次显示在控制台上。


小智 9

就我而言,我必须升级nextnext-auth模块到最新版本。 next@12.1.6next-auth@4.5.0为我工作。

NEXTAUTH_SECRET=secret string here
Run Code Online (Sandbox Code Playgroud)

您可以在命令提示符或 Windows Power shell 中使用此命令行生成密钥openssl rand -base64 32

并在next-auth配置[...nextauth].ts文件中

export default NextAuth({
 
  providers: [ 
  ],
  callbacks: {
  },
  secret: process.env.NEXTAUTH_SECRET,
});
Run Code Online (Sandbox Code Playgroud)

据说如果 Secret 没有在 中定义[...nextauth].ts,它会NEXTAUTH_SECRET从加载env,但我添加了它,并且像魅力一样工作。:)