better-auth-core について
better-auth-coreは、TypeScriptでBetter Authを設定するためのスキルです。サーバーハンドラーとクライアントの接続、安全なセッションやサーバーAPIの利用、データ層の選択を扱います。
主な機能
- 01Better Authインスタンスの設定
- 02サーバーハンドラーとクライアントの接続
- 03セッションとサーバーAPIの利用
- 04データベースドライバーやアダプターの選択
- 05TypeScript型の推論
活用シーン
- 01環境変数を使った認証設定
- 02データベース接続またはステートレスセッションの利用
- 03クライアントまたはサーバーでのセッション取得
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ bobmatnyc/ claude-mpm-skills --skill better-auth-coreインストール後、Claude Code で/better-auth-coreを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
metadata.jsonreferences/client-server.mdsetup-database.mdtypescript.md詳細
Better Auth Core(TypeScript)
目標
- 環境変数とデータレイヤーの接続を設定して、Better Auth インスタンスを構成します。
- サーバーハンドラーとクライアントインスタンスを接続します。
- セッションとサーバーサイド API メソッドを安全に使用します。
- データレイヤーの選択肢をプラグイン可能に保ちます(ドライバーまたはアダプター)。
クイックスタート
better-authをインストールします。BETTER_AUTH_SECRET(32 文字以上)とBETTER_AUTH_URLを設定します。auth.tsを作成し、authをエクスポートします。database(ドライバーまたはアダプター)を指定するか、ステートレスセッションを使用する場合は省略します。- ハンドラー(
auth.handlerまたはフレームワークのヘルパー)をマウントします。 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.mdtoolchains/platforms/auth/better-auth/better-auth-core/references/client-server.mdtoolchains/platforms/auth/better-auth/better-auth-core/references/typescript.md
コメント
Markdown 対応