mcpField
B
better-auth-authentication

better-auth-authentication

github.com/bobmatnycセキュリティ78393 回インストール15 週間前に更新
リポジトリ

better-auth-authentication について

Better Authの設定とクライアントメソッドの使い方を説明する開発ガイドです。メールアドレスとパスワード、ソーシャルログインに加え、メール認証、リダイレクト、エラー処理、シークレット管理を扱います。

主な機能

  1. 01メールアドレスとパスワードでの登録・ログイン
  2. 02ソーシャルプロバイダーのOAuthログイン
  3. 03メール認証フロー
  4. 04コールバックとエラーのリダイレクト
  5. 05セッションの永続化制御

活用シーン

  1. 01アプリにメール・パスワード認証を追加
  2. 02GitHubなどのソーシャルログインを設定
  3. 03ログイン前にメール認証を必須化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bobmatnyc/claude-mpm-skills --skill better-auth-authentication

インストール後、Claude Code で/better-auth-authenticationを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

metadata.json
references/
email-password.md
providers.md

詳細

Better Auth 認証

目標

  • メールアドレス/パスワード認証とソーシャルプロバイダーを有効にします。
  • サインアップ、サインイン、サインアウト、認証フローを実装します。
  • リダイレクトとエラーを一貫して処理します。

クイックスタート

  1. emailAndPassword を有効にし、socialProviders を設定します。
  2. createAuthClient を使ってクライアントを作成します。
  3. クライアントで 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.md
  • toolchains/platforms/auth/better-auth/better-auth-authentication/references/providers.md

コメント