Upstash Redis Adapter
리소스
설정
설치
npm install @upstash/redis @auth/upstash-redis-adapter
환경 변수
UPSTASH_REDIS_URL,
UPSTASH_REDIS_TOKEN
설정
./auth.ts
import NextAuth from "next-auth"
import { UpstashRedisAdapter } from "@auth/upstash-redis-adapter"
import { Redis } from "@upstash/redis"
const redis = new Redis({
url: process.env.UPSTASH_REDIS_URL!,
token: process.env.UPSTASH_REDIS_TOKEN!,
})
export const { handlers, auth, signIn, signOut } = NextAuth({
adapter: UpstashRedisAdapter(redis),
providers: [],
})
Advanced usage
하나의 Upstash Redis 인스턴스로 여러 앱 사용하기
Upstash의 무료 티어는 하나의 Redis 인스턴스만 허용합니다. 만약 여러분이 이 인스턴스를 사용하는 여러 개의 Auth.js 연결 앱을 가지고 있다면, 각 앱마다 다른 키 접두사를 사용해야 합니다.
이 접두사는 어댑터 팩토리 함수의 두 번째 인자로 options
객체를 전달하여 변경할 수 있습니다.
이 객체의 기본값은 다음과 같습니다:
const defaultOptions = {
baseKeyPrefix: "",
accountKeyPrefix: "user:account:",
accountByUserIdPrefix: "user:account:by-user-id:",
emailKeyPrefix: "user:email:",
sessionKeyPrefix: "user:session:",
sessionByUserIdKeyPrefix: "user:session:by-user-id:",
userKeyPrefix: "user:",
verificationTokenKeyPrefix: "user:token:",
}
일반적으로 이 시나리오에서는 baseKeyPrefix
만 변경해도 충분하지만, 더 커스텀한 설정을 원한다면 모든 키의 접두사를 변경할 수도 있습니다.
export const { handlers, auth, signIn, signOut } = NextAuth({
adapter: UpstashRedisAdapter(redis, { baseKeyPrefix: "app2:" }),
})