Sai*_*das 7 next.js vercel next-auth
根据文档https://next-auth.js.org/configuration/options#secret,添加NEXTAUTH_SECRET作为环境变量,您不必定义此选项。
但在 vercel 制作中我仍然得到,
2022-03-24T10:37:19.571Z 710a4b4b-24d3-4fb4-b991-9eb44179efc8 ERROR [next-auth][error][NO_SECRET]
https://next-auth.js.org/errors#no_secret Please define a `secret` in production. MissingSecret [MissingSecretError]: Please define a `secret` in production.
at assertConfig (/var/task/node_modules/next-auth/core/lib/assert.js:24:14)
at NextAuthHandler (/var/task/node_modules/next-auth/core/index.js:34:52)
at NextAuthNextHandler (/var/task/node_modules/next-auth/next/index.js:16:51)
at /var/task/node_modules/next-auth/next/index.js:52:38
at Object.apiResolver (/var/task/node_modules/next/dist/server/api-utils/node.js:182:15)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async NextNodeServer.runApi (/var/task/node_modules/next/dist/server/next-server.js:386:9)
at async Object.fn (/var/task/node_modules/next/dist/server/base-server.js:488:37)
at async Router.execute (/var/task/node_modules/next/dist/server/router.js:228:32)
at async NextNodeServer.run (/var/task/node_modules/next/dist/server/base-server.js:600:29) {
code: 'NO_SECRET'
}
Run Code Online (Sandbox Code Playgroud)
环境设置为NEXTAUTH_SECRET=MYSECRETSNAPBOOK
代码:
export default NextAuth({
providers: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
}),
],
pages: {
signIn: '/auth/signin',
},
callbacks: {
async session({ session, token, user }) {
session.user.username = session.user.name
.split(' ')
.join('')
.toLocaleLowerCase()
session.user.uid = token.sub
return session
},
},
})
Run Code Online (Sandbox Code Playgroud)
这是修复方法,
在 .env 文件(或你的 vercel env)中添加NEXT_PUBLIC_SECRET=anything(确保你有NEXT_PUBLIC_SECRET名称)
在 [...nextauth].js 中添加秘密选项
providers: [//Your providers],
secret: process.env.NEXT_PUBLIC_SECRET
npm i next-auth@4.1.2)| 归档时间: |
|
| 查看次数: |
18317 次 |
| 最近记录: |