mcpField
B
better-auth

better-auth

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

better-auth について

TypeScript プロジェクトで Better Auth を実装するためのガイドで、Next.js 16 App Router のサーバー、クライアント、セッション、ルート保護の構成を中心に扱います。OAuth、プラグイン、データベースアダプター、他の認証方式からの移行も説明します。

主な機能

  1. 01サーバー認証とクライアント状態の設定
  2. 02App Router の認証ルートと proxy.ts の利用
  3. 0340 種類以上の OAuth プロバイダーに対応
  4. 042FA、パスキー、SSO などのプラグイン
  5. 05データベースアダプターと移行手順を網羅

活用シーン

  1. 01Next.js 16 プロジェクトに認証を導入
  2. 02OAuth ログインとセッション管理を設定
  3. 03エンタープライズ SSO やマルチテナント組織を構成
  4. 04Auth.js、Clerk などから移行

インストール

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

$npx skills add https://github.com/fusengine/claude-plugins --skill better-auth

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

詳細

Next.js 16 App Router プロジェクトに、TypeScript を第一に考えた認証ライブラリ Better Auth を実装します。サーバー設定、クライアント(`createAuthClient`)、セッション管理、`app/api/auth/[...all]/route.ts` ハンドラーに加え、ルート保護用の `proxy.ts`(middleware を置き換えるもの)も扱います。

全機能を網羅します。40 種類以上の OAuth プロバイダー(Google、GitHub、Discord、Apple、Microsoft など)、20 種類以上のプラグイン(2FA、マジックリンク、パスキー、組織/マルチテナント、エンタープライズ SSO/SAML、SCIM プロビジョニング、Stripe/Polar の課金、JWT/Bearer、API キー)、データベースアダプター(Prisma、Drizzle、MongoDB、raw SQL)を扱います。Auth.js、Clerk、Auth0、Supabase、WorkOS からの移行方法も扱います。Better Auth 自体はフレームワークに依存しませんが、このスキルのアーキテクチャに関するガイダンス(proxy.ts、App Router API ルート)は Next.js 固有です。Prisma のスキーマ/クエリの詳細については prisma-7 を参照してください。

Better Auth - 完全な認証

40 種類以上の OAuth プロバイダーと20 種類以上のプラグインを備えた、TypeScript を第一に考えた認証ライブラリです。

エージェントのワークフロー(必須)

実装を始める前に、name を指定した Agent 呼び出しをそれぞれ1回行い、3つのエージェントを並行して起動してください。

  1. fuse-ai-pilot:explore-codebase - 既存の認証設定とパターンを分析します
  2. fuse-ai-pilot:research-expert - Context7/Exa 経由で Better Auth の最新ドキュメントを確認します
  3. mcp__context7__query-docs - 利用可能なプロバイダー/プラグインを確認します

実装後、検証のために fuse-ai-pilot:sniper を実行してください。


概要

使用する場面
  • TypeScript/JavaScript アプリケーションに認証を実装する場合
  • OAuth プロバイダー(Google、GitHub、Discord、Apple、Microsoft など)が必要な場合
  • 2FA、マジックリンク、パスキー、電話番号認証を追加する場合
  • SAML によるエンタープライズ SSO、SCIM プロビジョニング、または組織が必要な場合
  • Stripe または Polar のサブスクリプションを使った決済を統合する場合
  • Sign-In with Ethereum(SIWE)による Web3 認証を実装する場合
  • Auth.js、Clerk、Auth0、Supabase、WorkOS から移行する場合
Better Auth を選ぶ理由
機能メリット
フレームワークに依存しないNext.js、SvelteKit、Nuxt、Remix、Astro、Expo、NestJS
プラグインアーキテクチャ必要な機能だけを追加できます(20 種類以上のプラグイン)
TypeScript 完全対応エンドツーエンドの型安全性と型推論に対応
セルフホスト可能データは自社のインフラストラクチャ内に保持できます
柔軟なデータベース対応Prisma、Drizzle、MongoDB、PostgreSQL、MySQL、SQLite
エンタープライズ対応SSO、SCIM、組織、監査ログ
バージョンに関する注意(現行の安定版:1.7.x)
以降変更点
1.5スタンドアロン CLI npx auth@latest(generate、migrate、secret、init、check…)が @better-auth/cli に置き換わりました。OAuth 2.1 Provider(@better-auth/oauth-provider)が追加されました
1.6session.freshAge が createdAt から計算されるようになりました。oidcProvider は非推奨になりました
1.7oidcProvider が削除されました。汎用 OAuth プロバイダーは signIn.social を使用します(genericOAuthClient は不要です)。DB の結合は advanced.database.joins 経由になりました。アカウントのキーは (issuer, accountId) になりました。twoFactor.enable は method で判別されるレスポンスを返します。MCP は @better-auth/mcp に移動しました。SCIM は organization から切り離されました

1.7 にアップグレードした後は、スキーマを再生成し(npx auth@latest generate)、公式の 1.7 アップグレードガイドに従ってください。


対応範囲

OAuth プロバイダー(40 種類以上)

Google、GitHub、Discord、Apple、Microsoft、Slack、Spotify、Twitter/X、Facebook、LinkedIn、GitLab、Bitbucket、Dropbox、Twitch、Reddit、TikTok、および providers/ に記載されているその他25 種類以上に対応しています。

プラグイン(20 種類以上)
プラグイン用途
2FATOTP 認証アプリ、バックアップコード
Magic Linkパスワード不要のメールログイン
PasskeyWebAuthn による生体認証
Organizationマルチテナント、ロール、招待
SSOエンタープライズ向け SAML/OIDC シングルサインオン
SCIMディレクトリ同期、ユーザープロビジョニング
Stripeサブスクリプション課金の統合
API Keyマシン間認証
JWT/Bearerトークンベースの API 認証
データベースアダプター

Prisma、Drizzle、MongoDB、raw SQL(PostgreSQL、MySQL、SQLite)、およびコミュニティ製アダプターに対応しています。


SOLID アーキテクチャ(Next.js 16)

関心の分離に従い、コンポーネントを modules/auth/ に整理しています。

  • サービス:betterAuth の設定と初期化
  • フック:クライアント側の認証状態を扱う createAuthClient
  • API ルート:app/api/auth/[...all]/route.ts ハンドラー
  • プロキシ:ルートを保護する proxy.ts(ミドルウェアを置き換えます)

リファレンスガイド

必要な項目リファレンス
初期設定installation.md、server-config.md
クライアントの使用方法client.md、session.md
OAuth プロバイダーproviders/overview.md、各プロバイダーのドキュメント
プラグインの追加plugins/overview.md、各プラグインのドキュメント
データベースの設定adapters/prisma.md、adapters/drizzle.md
エンタープライズ SSOplugins/sso.md、guides/saml-okta.md
決済plugins/stripe.md、plugins/polar.md
移行guides/clerk-migration.md、その他の移行ガイド
完全なサンプル完全な実装例は examples/ を参照してください

ベストプラクティス

  1. 必要に応じたプラグイン - 実際に必要なプラグインだけを追加します
  2. 型安全なクライアント - サーバー設定から生成された型を使用します
  3. セッションのキャッシュ - パフォーマンス向上のため、セッションのキャッシュを有効にします
  4. レート制限 - 認証エンドポイントのレート制限を設定します
  5. セキュア Cookie - secure、httpOnly、sameSite Cookie を使用します
  6. データベースのインデックス - ユーザー検索フィールドにインデックスを追加します

概念

基本概念については concepts/ で説明しています。

  • セッション - トークン管理、更新、失効
  • データベース - スキーマ設計、マイグレーション、アダプター
  • プラグイン - 拡張システム、構成
  • OAuth - プロバイダーの設定、コールバック
  • セキュリティ - CSRF、レート制限、パスワードのハッシュ化
  • Cookie - セッションの保存、クロスドメイン

コメント