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 }),
})