better-auth-authentication について
Better Authの設定とクライアントメソッドの使い方を説明する開発ガイドです。メールアドレスとパスワード、ソーシャルログインに加え、メール認証、リダイレクト、エラー処理、シークレット管理を扱います。
主な機能
- 01メールアドレスとパスワードでの登録・ログイン
- 02ソーシャルプロバイダーのOAuthログイン
- 03メール認証フロー
- 04コールバックとエラーのリダイレクト
- 05セッションの永続化制御
活用シーン
- 01アプリにメール・パスワード認証を追加
- 02GitHubなどのソーシャルログインを設定
- 03ログイン前にメール認証を必須化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ bobmatnyc/ claude-mpm-skills --skill better-auth-authenticationインストール後、Claude Code で/better-auth-authenticationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
metadata.jsonreferences/email-password.mdproviders.md詳細
Better Auth 認証
目標
- メールアドレス/パスワード認証とソーシャルプロバイダーを有効にします。
- サインアップ、サインイン、サインアウト、認証フローを実装します。
- リダイレクトとエラーを一貫して処理します。
クイックスタート
emailAndPasswordを有効にし、socialProvidersを設定します。createAuthClientを使ってクライアントを作成します。- クライアントで
signUp.email、signIn.email、signIn.social、signOutを使います。
import { betterAuth } from "better-auth";
export const auth = betterAuth({
emailAndPassword: { enabled: true },
socialProviders: {
github: {
clientId: process.env.GITHUB_CLIENT_ID as string,
clientSecret: process.env.GITHUB_CLIENT_SECRET as string,
},
},
});
import { createAuthClient } from "better-auth/client";
const authClient = createAuthClient();
await authClient.signUp.email({
email,
password,
name,
});
await authClient.signIn.email({
email,
password,
callbackURL: "/dashboard",
});
await authClient.signIn.social({
provider: "github",
callbackURL: "/dashboard",
});
await authClient.signOut();
メール認証
emailVerification.sendVerificationEmailを指定して、認証リンクを送信します。emailAndPassword.requireEmailVerificationを使って、サインイン前の認証を必須にします。
ソーシャルプロバイダー
- プロバイダー固有の認証情報を使い、
socialProvidersでプロバイダーを設定します。 signIn.socialを使って OAuth フローを開始します。- リダイレクト先には
callbackURL、errorCallbackURL、newUserCallbackURLを渡します。
ガードレール
- クライアントメソッドはクライアントからのみ呼び出します。
- シークレットはサーバー専用の環境変数に保存します。
- メールアドレス/パスワードでのサインイン時に、
rememberMeを使ってセッションの永続化を制御します。
参考資料
toolchains/platforms/auth/better-auth/better-auth-authentication/references/email-password.mdtoolchains/platforms/auth/better-auth/better-auth-authentication/references/providers.md
コメント
Markdown 対応