跳至内容
从 NextAuth.js v4 迁移?阅读 我们的迁移指南.
入门适配器Upstash Redis

Upstash Redis 适配器

资源

设置

安装

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: [],
})

高级用法

使用单个 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:" }),
})
Auth.js © Balázs Orbán 和团队 -2024