跳到內容
從 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