Cloudflare D1 アダプター
リソース
セットアップ
インストール
npm install next-auth @auth/d1-adapter
環境変数
Cloudflareプラットフォームの環境変数は、wrangler.toml
設定ファイル、または管理ダッシュボードのいずれかで設定します。
設定
./auth.ts
import NextAuth from "next-auth"
import { D1Adapter } from "@auth/d1-adapter"
export const { handlers, auth, signIn, signOut } = NextAuth({
providers: [],
adapter: D1Adapter(env.db),
})
マイグレーション
アプリケーションの初期化のどこかで、up(env.db)
関数を実行して、D1にテーブルを作成する必要があります。まだ存在しない場合、accounts
、sessions
、users
、verification_tokens
の4つのテーブルが作成されます。
テーブルのプレフィックス ""
は、現時点では構成できません。
ワーカーが起動するたびに一度マイグレーションを試みるには、次のようなものを使用できます。マイグレーションを複数回実行しても、既存のテーブルが消去されることはありません。
import { up } from "@auth/d1-adapter"
let migrated = false
async function migrationHandle({ event, resolve }) {
if (!migrated) {
try {
await up(event.platform.env.db)
migrated = true
} catch (e) {
console.log(e.cause.message, e.message)
}
}
return resolve(event)
}
- テーブルを手動で初期化することもできます。関連するSQLと、上記の
up()
関数の例については、migrations.tsを参照してください。 - CloudflareダッシュボードのD1データベースのコンソール内でSQLを貼り付けて実行します。