跳至内容
从 NextAuth.js v4 迁移?阅读 我们的迁移指南.

Unstorage 适配器

资源

设置

安装

npm install unstorage @auth/unstorage-adapter

配置

./auth.ts
import NextAuth from "next-auth"
import { UnstorageAdapter } from "@auth/unstorage-adapter"
import { createStorage } from "unstorage"
 
const storage = createStorage()
 
export const { handlers, auth, signIn, signOut } = NextAuth({
  adapter: UnstorageAdapter(storage),
  providers: [],
})

高级用法

使用单个存储中的多个应用

如果您有多个使用同一存储的 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 就足以应对这种情况,但是对于更自定义的设置,您还可以更改每个密钥的前缀。

import NextAuth from "next-auth"
import { UnstorageAdapter } from "@auth/unstorage-adapter"
import { createStorage } from "unstorage"
 
const storage = createStorage()
 
export const { handlers, auth, signIn, signOut } = NextAuth({
  adapter: UnstorageAdapter(storage, { baseKeyPrefix: "app2:" }),
})

使用 getItemRaw/setItemRaw 而不是 getItem/setItem

如果您使用的是支持 JSON 的存储,则可以使其使用 getItemRaw/setItemRaw 而不是 getItem/setItem

这是一个实验性功能。请查看 unjs/unstorage#142 以了解更多信息。

您可以通过在 options 对象中传递 useItemRaw: true(默认值为 false)作为适配器工厂函数的第二个参数来启用此功能。

export const { handlers, auth, signIn, signOut } = NextAuth({
  adapter: UnstorageAdapter(storage, { useItemRaw: true }),
})
Auth.js © Balázs Orbán 和团队 -2024