Better Authを使ってみた
概要
Better Authの構造としては、単一のエンドポイントを建てて、そこにリクエストを投げていく感じ。
サーバー、クライアントどちらからもリクエストを投げることができる。
また、プラグインを使って機能拡張できる。
主な機能
- メールアドレス・パスワード認証
- OAuth
- 匿名
- マジックリンク
など...
注目ポイント
モダンなフレームワークで使える
Next/NuxtJS
Sveltekit
Remix(RRv7)
Astro
Solid Start
TanStack Start
Hono
Expo
で使えるらしい。
ドキュメント充実&コミュニティ(discord)がある
ClientメソッドがTanStack的
onErrorやonSuccessがあるのでloadingの制御を書きやすい。
Userテーブルにカラムを追加できる
roleなどの追加カラムを設定できる。typeの補完も効くようになる。
フック
APIリクエスト前、後にカスタムロジックを挿入できる。
ctx.pathでエンドポイントパスを取得して、場合分けすることでより柔軟に制御できる。
メール送信処理
sendVerificationEmail・sendResetPassword、sendDeleteAccountVerificationとかがあるので、メール送信でresendとか使える。
OAuthのprofileマッピング
mapProfileToUserでプロバイダーから取得した値をマッピングできる
OAuth認証した後...
newUserCallbackURLで新規ユーザーが遷移するページ、callbackURLで既存ユーザーが遷移するページを指定できる
アカウントリンクができる
アカウントリンクの有効化・無効化ができる。ログインしている時に手動でアカウント連携したい時もメソッドある。
パスワードがない時も、追加でパスワード作成とかできる。
パスワード忘れ、メール検証など...
メールアドレス検証、パスワード忘れ、パスワード更新、メール変更、ユーザー削除などの機構が備わっている。
セッションについて
セッションの一覧表示、revokeができる
Adminプラグイン
Adminプラグインを使えば、ユーザー一覧、ユーザー削除、ユーザーのban、ユーザーのImpersonateができる。
個人的な感想
next-authよりもビッグラブ
Discussion