PouchDB Adapter
리소스
설정
설치
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"
// PouchDB 인스턴스와 데이터베이스 설정
PouchDB.plugin(require("pouchdb-adapter-leveldb")) // 또는 다른 어댑터
.plugin(require("pouchdb-find")) // `pouchdb-find` 플러그인을 잊지 마세요
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, in-memory 등)를 사용할 수 있습니다.
PouchDB 인스턴스는 반드시 pouchdb-find
플러그인을 제공해야 합니다. 이
플러그인은 어댑터가 내부적으로 인덱스를 구축하고 관리하는 데 사용됩니다.
Advanced usage
메모리 우선 캐싱 전략
인증 계층의 성능을 향상시키려면 PouchDB의 강력한 동기화 기능과 다양한 어댑터를 활용해 메모리 우선 캐싱 전략을 구축할 수 있습니다.
메인 인증 데이터베이스로 메모리 내 PouchDB를 사용하고, 이를 다른 영구 저장된 PouchDB와 동기화하세요. 시작 시 영구 저장된 PouchDB에서 메모리 내 PouchDB로 일회성 단방향 복제를 수행한 후, 양방향 지속적 동기화를 진행할 수 있습니다.
하지만 서버리스 환경에서는 동시성, 함수 시작 시간 증가 등 다양한 이유로 인해 성능이 크게 향상되지는 않을 가능성이 높습니다.
자세한 내용은 https://pouchdb.com/api.html#sync 를 참고하세요.