Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 60/100

create-auth-skill

Better Authを使用してTypeScript/JavaScriptアプリに認証レイヤーを作成するスキルです。

description の原文を見る

Skill for creating auth layers in TypeScript/JavaScript apps using Better Auth.

SKILL.md 本文

認証スキル

Better Auth を使用して TypeScript/JavaScript アプリケーションに認証を追加するためのガイド。

コード例と構文については、better-auth.com/docsを参照してください。


判断フロー

これは新規/空のプロジェクトですか?
├─ はい → 新規プロジェクトのセットアップ
│   1. フレームワークを特定する
│   2. データベースを選択する
│   3. better-auth をインストールする
│   4. auth.ts + auth-client.ts を作成する
│   5. ルートハンドラーをセットアップする
│   6. CLI migrate/generate を実行する
│   7. プラグインで機能を追加する
│
└─ いいえ → プロジェクトに既存の認証がありますか?
    ├─ はい → 移行/拡張
    │   • 現在の認証の不足部分を監査する
    │   • 段階的な移行を計画する
    │   • ドキュメント内の移行ガイドを参照する
    │
    └─ いいえ → 既存プロジェクトに認証を追加する
        1. プロジェクト構造を分析する
        2. better-auth をインストールする
        3. 認証設定を作成する
        4. ルートハンドラーを追加する
        5. スキーママイグレーションを実行する
        6. 既存ページに統合する

インストール

コア: npm install better-auth

スコープ付きパッケージ(必要に応じて):

パッケージユースケース
@better-auth/passkeyWebAuthn/Passkey 認証
@better-auth/ssoSAML/OIDC エンタープライズ SSO
@better-auth/stripeStripe 支払い
@better-auth/scimSCIM ユーザープロビジョニング
@better-auth/expoReact Native/Expo

環境変数

BETTER_AUTH_SECRET=<32文字以上、以下で生成: openssl rand -base64 32>
BETTER_AUTH_URL=http://localhost:3000
DATABASE_URL=<データベース接続文字列>

必要に応じて OAuth シークレットを追加します: GITHUB_CLIENT_IDGITHUB_CLIENT_SECRETGOOGLE_CLIENT_ID など。


サーバー設定 (auth.ts)

場所: lib/auth.ts または src/lib/auth.ts

最小限の設定が必要:

  • database - コネクションまたはアダプター
  • emailAndPassword: { enabled: true } - メール/パスワード認証用

標準設定の追加:

  • socialProviders - OAuth プロバイダー(google、github など)
  • emailVerification.sendVerificationEmail - メール確認ハンドラー
  • emailAndPassword.sendResetPassword - パスワードリセットハンドラー

完全な設定の追加:

  • plugins - 機能プラグインの配列
  • session - 有効期限、クッキーキャッシュ設定
  • account.accountLinking - マルチプロバイダーリンク
  • rateLimit - レート制限設定

エクスポート型: export type Session = typeof auth.$Infer.Session


クライアント設定 (auth-client.ts)

フレームワークでインポート:

フレームワークインポート
React/Next.jsbetter-auth/react
Vuebetter-auth/vue
Sveltebetter-auth/svelte
Solidbetter-auth/solid
Vanilla JSbetter-auth/client

クライアントプラグインcreateAuthClient({ plugins: [...] }) に指定します。

一般的なエクスポート: signInsignUpsignOutuseSessiongetSession


ルートハンドラーのセットアップ

フレームワークファイルハンドラー
Next.js App Routerapp/api/auth/[...all]/route.tstoNextJsHandler(auth){ GET, POST } をエクスポート
Next.js Pagespages/api/auth/[...all].tstoNextJsHandler(auth) → デフォルトエクスポート
Express任意のファイルapp.all("/api/auth/*", toNodeHandler(auth))
SvelteKitsrc/hooks.server.tssvelteKitHandler(auth)
SolidStartルートファイルsolidStartHandler(auth)
Honoルートファイルauth.handler(c.req.raw)

Next.js サーバーコンポーネント: 認証設定に nextCookies() プラグインを追加します。


データベースマイグレーション

アダプターコマンド
ビルトイン Kyselynpx @better-auth/cli@latest migrate (直接適用)
Prismanpx @better-auth/cli@latest generate --output prisma/schema.prisma の後に npx prisma migrate dev
Drizzlenpx @better-auth/cli@latest generate --output src/db/auth-schema.ts の後に npx drizzle-kit push

プラグイン追加後に再実行してください。


データベースアダプター

データベースセットアップ
SQLitebetter-sqlite3 または bun:sqlite インスタンスを直接渡す
PostgreSQLpg.Pool インスタンスを直接渡す
MySQLmysql2 プールを直接渡す
Prismabetter-auth/adapters/prisma からの prismaAdapter(prisma, { provider: "postgresql" })
Drizzlebetter-auth/adapters/drizzle からの drizzleAdapter(db, { provider: "pg" })
MongoDBbetter-auth/adapters/mongodb からの mongodbAdapter(db)

一般的なプラグイン

プラグインサーバーインポートクライアントインポート用途
twoFactorbetter-auth/pluginstwoFactorClientTOTP/OTP による 2FA
organizationbetter-auth/pluginsorganizationClientチーム/組織
adminbetter-auth/pluginsadminClientユーザー管理
bearerbetter-auth/plugins-API トークン認証
openAPIbetter-auth/plugins-API ドキュメント
passkey@better-auth/passkeypasskeyClientWebAuthn
sso@better-auth/sso-エンタープライズ SSO

プラグインパターン: サーバープラグイン + クライアントプラグイン + マイグレーション実行。


認証 UI の実装

サインインフロー:

  1. signIn.email({ email, password }) または signIn.social({ provider, callbackURL })
  2. レスポンスの error を処理する
  3. 成功時にリダイレクトする

セッションチェック(クライアント): useSession() フックは { data: session, isPending } を返します

セッションチェック(サーバー): auth.api.getSession({ headers: await headers() })

保護されたルート: セッションをチェックし、null の場合は /sign-in にリダイレクトします。


セキュリティチェックリスト

  • BETTER_AUTH_SECRET が設定されている(32文字以上)
  • 本番環境で advanced.useSecureCookies: true が有効
  • trustedOrigins が設定されている
  • レート制限が有効
  • メール確認が有効
  • パスワードリセットが実装されている
  • 機密アプリケーションに 2FA がある
  • CSRF 保護が無効になっていない
  • account.accountLinking がレビュー済み

トラブルシューティング

問題解決方法
「Secret not set」BETTER_AUTH_SECRET 環境変数を追加する
「Invalid Origin」ドメインを trustedOrigins に追加する
クッキーが設定されないbaseURL がドメインと一致することを確認; 本番環境でセキュアクッキーを有効にする
OAuth コールバックエラープロバイダーダッシュボードでリダイレクト URI を確認する
プラグイン追加後の型エラーCLI generate/migrate を再実行する

リソース

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
rinbarpen
リポジトリ
rinbarpen/llm-router
ライセンス
MIT
最終更新
2026/5/9

Source: https://github.com/rinbarpen/llm-router / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: rinbarpen · rinbarpen/llm-router · ライセンス: MIT