環境變數
Auth secret
.env.local
AUTH_SECRET="This is an example"
AUTH_SECRET
是由程式庫用來加密 token 和電子郵件驗證雜湊的隨機 token,為了保持安全,這是必須的(請參閱部署以了解更多資訊)。您可以使用 CLI 來產生 auth secret
npm exec auth secret
環境變數推斷
當使用官方 OAuth 提供者時,Auth.js 會自動設定為挑選正確的 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,
}),
],
})