mcpField
B
better-auth-core

better-auth-core

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

better-auth-core について

better-auth-coreは、TypeScriptでBetter Authを設定するためのスキルです。サーバーハンドラーとクライアントの接続、安全なセッションやサーバーAPIの利用、データ層の選択を扱います。

主な機能

  1. 01Better Authインスタンスの設定
  2. 02サーバーハンドラーとクライアントの接続
  3. 03セッションとサーバーAPIの利用
  4. 04データベースドライバーやアダプターの選択
  5. 05TypeScript型の推論

活用シーン

  1. 01環境変数を使った認証設定
  2. 02データベース接続またはステートレスセッションの利用
  3. 03クライアントまたはサーバーでのセッション取得

インストール

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

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

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

同梱ファイル

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

metadata.json
references/
client-server.md
setup-database.md
typescript.md

詳細

Better Auth Core(TypeScript)

目標

  • 環境変数とデータレイヤーの接続を設定して、Better Auth インスタンスを構成します。
  • サーバーハンドラーとクライアントインスタンスを接続します。
  • セッションとサーバーサイド API メソッドを安全に使用します。
  • データレイヤーの選択肢をプラグイン可能に保ちます(ドライバーまたはアダプター)。

クイックスタート

  1. better-auth をインストールします。
  2. BETTER_AUTH_SECRET(32 文字以上)と BETTER_AUTH_URL を設定します。
  3. auth.ts を作成し、auth をエクスポートします。
  4. database(ドライバーまたはアダプター)を指定するか、ステートレスセッションを使用する場合は省略します。
  5. ハンドラー(auth.handler またはフレームワークのヘルパー)をマウントします。
  6. createAuthClient でクライアントを作成します。
import { betterAuth } from "better-auth";

export const auth = betterAuth({
  database: myDatabaseOrAdapter, // driver or adapter; omit for stateless mode
  emailAndPassword: { enabled: true },
  socialProviders: {
    github: {
      clientId: process.env.GITHUB_CLIENT_ID as string,
      clientSecret: process.env.GITHUB_CLIENT_SECRET as string,
    },
  },
});

コア設定チェックリスト

  • ヘルパーが見つけられるように、インスタンスを auth としてエクスポートするか、デフォルトエクスポートにします。
  • BETTER_AUTH_URL を公開ベース URL と同期させます。
  • /api/auth のベースパスを変更する場合は、クライアントに完全なベース URL を渡します。
  • テーブルを必要とするプラグインを有効にする前に、データベースのマイグレーションを追加します。

サーバー API の使用

  • { body, headers, query } を指定して、auth.api.* 経由でサーバーエンドポイントを呼び出します。
  • Response オブジェクトが必要な場合は、asResponse: true を使用します。
  • Set-Cookie ヘッダーにアクセスするには、returnHeaders: true を使用します。
import { auth } from "./auth";

const session = await auth.api.getSession({
  headers: request.headers,
});

const response = await auth.api.signInEmail({
  body: { email, password },
  asResponse: true,
});

セッションへのアクセス

  • クライアント:authClient.useSession() または authClient.getSession()。
  • サーバー:auth.api.getSession({ headers })。

TypeScript のヒント

  • auth.$Infer と authClient.$Infer で型を推論します。
  • ユーザースキーマを拡張する場合は、クライアントで inferAdditionalFields を使用します。

参考資料

  • toolchains/platforms/auth/better-auth/better-auth-core/references/setup-database.md
  • toolchains/platforms/auth/better-auth/better-auth-core/references/client-server.md
  • toolchains/platforms/auth/better-auth/better-auth-core/references/typescript.md

コメント