环境变量
身份验证密钥
.env.local
AUTH_SECRET="This is an example"
AUTH_SECRET
是库用来加密令牌和电子邮件验证哈希的随机令牌,为了保证安全性,它是必不可少的(请参阅 部署 以了解更多信息)。您可以使用 CLI 生成身份验证密钥
npm exec auth secret
环境变量推断
Auth.js 自动配置为在使用 官方 OAuth 提供商 时选择正确的环境变量 clientId
和 clientSecret
。
这些变量在您的 .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,
}),
],
})