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

auth0-react

ReactアプリケーションにAuth0認証を追加する際に使用します。ログイン・ログアウト・ユーザーセッション・保護されたルートの実装をサポートし、ViteまたはCreate React AppベースのSPAに`@auth0/auth0-react` SDKを統合します。

description の原文を見る

Use when adding authentication to React applications (login, logout, user sessions, protected routes) - integrates @auth0/auth0-react SDK for SPAs with Vite or Create React App

SKILL.md 本文

Auth0 React 連携

@auth0/auth0-react を使用して React シングルページアプリケーションに認証を追加します。


前提条件

  • React 16.11+ アプリケーション (Vite または Create React App) - React 16、17、18、19 をサポート
  • Auth0 アカウントと設定済みのアプリケーション
  • Auth0 をまだセットアップしていない場合は、まず auth0-quickstart スキルを使用してください

使用しない場合

  • Next.js アプリケーション - App Router と Pages Router の両方に auth0-nextjs スキルを使用
  • React Native モバイルアプリ - iOS/Android に auth0-react-native スキルを使用
  • サーバーサイドレンダリング React - フレームワーク固有の SDK (Next.js、Remix など) を使用
  • 埋め込みログイン - このSDK は Auth0 Universal Login (リダイレクトベース) を使用
  • バックエンド API 認証 - express-openid-connect または JWT 検証を使用

クイックスタートワークフロー

1. SDK をインストール

npm install @auth0/auth0-react

2. 環境を設定

Auth0 CLI を使った自動セットアップの場合セットアップガイドで完全なスクリプトを確認してください。

手動セットアップの場合:

.env ファイルを作成:

Vite:

VITE_AUTH0_DOMAIN=your-tenant.auth0.com
VITE_AUTH0_CLIENT_ID=your-client-id

Create React App:

REACT_APP_AUTH0_DOMAIN=your-tenant.auth0.com
REACT_APP_AUTH0_CLIENT_ID=your-client-id

3. Auth0Provider でアプリをラップ

src/main.tsx (Vite) または src/index.tsx (CRA) を更新:

import React from 'react';
import ReactDOM from 'react-dom/client';
import { Auth0Provider } from '@auth0/auth0-react';
import App from './App';

ReactDOM.createRoot(document.getElementById('root')!).render(
  <React.StrictMode>
    <Auth0Provider
      domain={import.meta.env.VITE_AUTH0_DOMAIN} // or process.env.REACT_APP_AUTH0_DOMAIN
      clientId={import.meta.env.VITE_AUTH0_CLIENT_ID}
      authorizationParams={{
        redirect_uri: window.location.origin
      }}
    >
      <App />
    </Auth0Provider>
  </React.StrictMode>
);

4. 認証 UI を追加

import { useAuth0 } from '@auth0/auth0-react';

export function LoginButton() {
  const { loginWithRedirect, logout, isAuthenticated, user, isLoading } = useAuth0();

  if (isLoading) return <div>Loading...</div>;

  if (isAuthenticated) {
    return (
      <div>
        <span>Welcome, {user?.name}</span>
        <button onClick={() => logout({ logoutParams: { returnTo: window.location.origin } })}>
          Logout
        </button>
      </div>
    );
  }

  return <button onClick={() => loginWithRedirect()}>Login</button>;
}

5. 認証をテスト

開発サーバーを起動してログインフローをテストします:

npm run dev  # Vite
# or
npm start    # CRA

詳細ドキュメント

  • セットアップガイド - 自動セットアップスクリプト (Bash/PowerShell)、CLI コマンド、手動設定
  • 統合ガイド - 保護されたルート、API 呼び出し、エラーハンドリング、高度なパターン
  • API リファレンス - 完全な SDK API、設定オプション、フック リファレンス、テスト戦略

よくある間違い

間違い解決策
Auth0 ダッシュボードにリダイレクト URI を追加し忘れたAuth0 ダッシュボードの許可されるコールバック URL に、アプリケーション URL (例: http://localhost:3000https://app.example.com) を追加
間違った環境変数プレフィックスを使用Vite は VITE_ プレフィックスを使用、Create React App は REACT_APP_ プレフィックスを使用
ローディング状態を処理していない認証に依存する UI をレンダリングする前に、常に isLoading を確認
トークンを localStorage に保存しているトークンを手動で保存しない - SDK が自動的に安全に保存
Auth0Provider ラッパーがないアプリ全体を <Auth0Provider> でラップする必要がある
Provider がルートレベルにないAuth0Provider は認証フックを使用するすべてのコンポーネントをラップする必要がある
環境変数の import パスが間違っているVite は import.meta.env.VITE_* を使用、CRA は process.env.REACT_APP_* を使用
in-app MFA に acr_values リダイレクトを使用しているin-app の登録/チャレンジ/検証フローには useAuth0().mfa API を使用
MfaRequiredError をキャッチしていないgetAccessTokenSilently を try/catch でラップし、instanceof MfaRequiredError をチェック
MFA エンドポイントへの直接 HTTP 呼び出しを行っているuseAuth0()mfa プロパティを使用 - トークン管理を自動的に処理
ステップアップ MFA のリフレッシュトークンを忘れているinteractiveErrorHandler="popup" を使用する場合、Auth0Provider に useRefreshTokens={true} を設定

関連スキル

  • auth0-quickstart - 基本的な Auth0 セットアップ
  • auth0-migration - 別の認証プロバイダから移行
  • auth0-mfa - 多要素認証を追加
  • auth0-cli - ターミナルから Auth0 リソースを管理

クイックリファレンス

コアフック:

  • useAuth0() - メイン認証フック
  • isAuthenticated - ユーザーがログインしているかどうかを確認
  • user - ユーザープロフィール情報
  • loginWithRedirect() - ログインを開始
  • logout() - ユーザーをログアウト
  • getAccessTokenSilently() - API 呼び出し用のアクセストークンを取得
  • mfa - 登録、チャレンジ、検証用の MFA API クライアント
    • mfa.getAuthenticators(mfaToken) - 登録済みの認証器をリスト
    • mfa.getEnrollmentFactors(mfaToken) - 利用可能な登録要因を取得
    • mfa.enroll(params) - 新しい認証器を登録 (OTP、SMS、Email、Voice、Push)
    • mfa.challenge(params) - MFA チャレンジを開始
    • mfa.verify(params) - MFA チャレンジを検証して認証を完了

MFA エラータイプ (@auth0/auth0-react からインポート):

  • MfaRequiredError - getAccessTokenSilently で MFA が必要な場合にスロー (mfa_tokenmfa_requirements を含む)
  • MfaEnrollmentErrorMfaChallengeErrorMfaVerifyError - それぞれの mfa.* メソッドによってスロー

よく使用されるユースケース:

  • ログイン/ログアウトボタン → 上記のステップ 4 を参照
  • 保護されたルート → 統合ガイド
  • トークンを使用した API 呼び出し → 統合ガイド
  • エラーハンドリング → 統合ガイド
  • MFA ハンドリング → 統合ガイド

参考資料

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

詳細情報

作者
auth0
リポジトリ
auth0/agent-skills
ライセンス
Apache-2.0
最終更新
不明

Source: https://github.com/auth0/agent-skills / ライセンス: Apache-2.0

関連スキル

汎用ソフトウェア開発⭐ リポ 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 フォームよりご連絡ください。
原作者: auth0 · auth0/agent-skills · ライセンス: Apache-2.0