環境変数
Authシークレット
.env.local
AUTH_SECRET="This is an example"
AUTH_SECRET
は、トークンとメール認証ハッシュを暗号化するためにライブラリで使用されるランダムトークンであり、セキュリティを維持するために必須です(詳細については、デプロイメントを参照してください)。CLIを使用してAuthシークレットを生成できます
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,
}),
],
})