コンテンツへスキップ
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 接続アプリがある場合、各アプリに異なるキープレフィックスが必要です。

アダプターファクトリ関数への第2引数として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:" }),
})

getItem/setItemの代わりにgetItemRaw/setItemRawを使用する

JSON をサポートするストレージを使用している場合、getItem/setItemの代わりにgetItemRaw/setItemRawを使用するように設定できます。

これは実験的な機能です。詳細についてはunjs/unstorage#142をご覧ください。

アダプターファクトリ関数への第2引数としてoptionsオブジェクトにuseItemRaw: true(デフォルト: false)を渡すことで、この機能を有効にできます。

export const { handlers, auth, signIn, signOut } = NextAuth({
  adapter: UnstorageAdapter(storage, { useItemRaw: true }),
})