PouchDBアダプター
リソース
設定
インストール
npm install pouchdb pouchdb-find @auth/pouchdb-adapter
設定
./auth.ts
import NextAuth from "next-auth"
import { PouchDBAdapter } from "@auth/pouchdb-adapter"
import PouchDB from "pouchdb"
// Setup your PouchDB instance and database
PouchDB.plugin(require("pouchdb-adapter-leveldb")) // Or any other adapter
.plugin(require("pouchdb-find")) // Don't forget the `pouchdb-find` plugin
const pouchdb = new PouchDB("auth_db", { adapter: "leveldb" })
export const { handlers, auth, signIn, signOut } = NextAuth({
providers: [],
adapter: PouchDBAdapter(pouchdb),
})
💡
アーキテクチャによっては、PouchDBのhttpアダプターを使用して、CouchDBプロトコルに準拠するデータベース(CouchDB、Cloudantなど)にアクセスしたり、他のPouchDB互換アダプター(leveldb、インメモリなど)を使用したりできます。
PouchDBインスタンスは、pouchdb-find
プラグインを提供する必要があります。これは、アダプターによって内部的に使用され、インデックスの構築と管理に使用されます。
高度な使用方法
メモリファーストキャッシング戦略
認証レイヤーのパフォーマンスを向上させる必要がある場合は、PouchDBの強力な同期機能とさまざまなアダプターを使用して、メモリファーストキャッシング戦略を構築できます。
メインの認証データベースとしてインメモリPouchDBを使用し、それを他の永続化されたPouchDBと同期します。起動時に永続化されたPouchDBからインメモリPouchDBへの一方向の一括レプリケーションを行い、その後、双方向の継続的な同期を行うことができます。
これは、コンカレンシー、関数起動時間の増加など、さまざまな理由から、サーバーレス環境ではパフォーマンスをそれほど向上させません。
詳細については、https://pouchdb.com/api.html#syncをご覧ください。