Environment variables
Auth secret
.env.local
AUTH_SECRET="This is an example"
AUTH_SECRET
는 라이브러리가 토큰과 이메일 인증 해시를 암호화하는 데 사용하는 임의의 토큰입니다. 보안을 유지하기 위해 필수적으로 설정해야 합니다. (자세한 내용은 배포 문서를 참고하세요.) CLI를 사용하여 auth secret을 생성할 수 있습니다:
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,
}),
],
})