generated at
hono on Cloudflare Pages で Auth.js + Resend で passless 認証
hono on Cloudflare PagesAuth.js + Resend で passless 認証
next-auth こと Auth.js はちょっと使ったことあって、Cloudflare Workers には D1 があるので、これをストアとして素直にセッション張れるんじゃ?ということで
ありがたいことに hono には Auth.js の middleware があって https://www.npmjs.com/package/@hono/auth-js サンプル通りに書いてやって、 providers Resend の provider を追加して、 adapter には DrizzleAdapter を指定した(drizzle に慣れているので)
drizzle のスキーマ定義は https://authjs.dev/getting-started/adapters/drizzle に書いてある通りの内容でスキーマを定義してやって、migrate すればよい
こんな感じでセットアップして /api/auth/signin にアクセスすると、メアドをいれるだけの input と button があるので入力すると Resend からメールが送られてくるので、メールのリンクにアクセスすると callback が飛んでアカウントの作成まで通った
環境変数に Resend の API Key をいれておくのを忘れない
ところで、Resend のことはじめて知ったんだけど便利そうな気配を感じる
今どき OAuth の実装とかも面倒だなって気持ちがあり、かといって ID/Pass 認証ってのももうダルいのでいわゆる Magic Link 的なので認証するのが手っ取り早いかな〜と
少し前は Supabase を認証に使っていたが、Supabase を採用するとじゃあ DB も Supabase にするかあ、みたいなことになり、いろいろダルくなっていくので Cloudflare スタックでまとまるようにした
Cloudflare にこの手の IdP? の仕組みがあるといいんだけど、Cloudflare Access があるだけでこいつはそういう用途には使えなそうなので断念...
何気に Resend の部分も Cloudflare の SES みたいなのがあるとラクそうだけどなあ...