跳至内容
从 NextAuth.js v4 迁移?阅读 我们的迁移指南.
指南环境变量

环境变量

身份验证密钥

.env.local
AUTH_SECRET="This is an example"

AUTH_SECRET 是库用来加密令牌和电子邮件验证哈希的随机令牌,为了保证安全性,它是必不可少的(请参阅 部署 以了解更多信息)。您可以使用 CLI 生成身份验证密钥

npm exec auth secret

环境变量推断

Auth.js 自动配置为在使用 官方 OAuth 提供商 时选择正确的环境变量 clientIdclientSecret

这些变量在您的 .env 文件中的格式应始终遵循相同的模式

AUTH_[PROVIDER]_ID=
AUTH_[PROVIDER]_SECRET=

例如,如果我们使用 Google、Twitter 和 GitHub 提供商,您的 .env 文件将如下所示。

# Google
AUTH_GOOGLE_ID=123
AUTH_GOOGLE_SECRET=123
 
# Twitter
AUTH_TWITTER_ID=123
AUTH_TWITTER_SECRET=123
 
# GitHub
AUTH_GITHUB_ID=123
AUTH_GITHUB_SECRET=123

然后在您的 Auth.js 配置文件中,provider 数组简化为以下内容。

./auth.ts
import NextAuth from "next-auth"
import Google from "next-auth/providers/google"
import Twitter from "next-auth/providers/twitter"
import GitHub from "next-auth/providers/github"
 
export const { handlers, auth } = NextAuth({
  providers: [Google, Twitter, GitHub],
})

如果出于某种原因您想以不同的方式命名变量

# Google
AUTH_WEBAPP_GOOGLE_CLIENT_ID=123
AUTH_WEBAPP_GOOGLE_CLIENT_SECRET=123

那么您需要在配置中手动引用它们

./auth.ts
import NextAuth from "next-auth"
import Google from "next-auth/providers/google"
 
export const { handlers, auth } = NextAuth({
  providers: [
    Google({
      clientId: process.env.AUTH_WEBAPP_GOOGLE_CLIENT_ID,
      clientSecret: process.env.AUTH_WEBAPP_GOOGLE_CLIENT_SECRET,
    }),
  ],
})
Auth.js © Balázs Orbán 和团队 -2024