Skip to main content
Auth0ComponentProvider は、Auth0 Universal Components のオーケストレーション層です。Auth0 SDK はセッションとトークンを管理し、Auth0ComponentProvider はそのアイデンティティの状態を、機能的でブランドに沿った UI コンテキストへと変換します。Auth0ComponentProvider は、MFA 登録などのコンポーネントで必要となる権限、キャッシュされたデータ、スタイリングを確実に利用できるようにします。

利点

Auth0ComponentProvider は、すべての Auth0 Universal Components に必要なルートラッパーです。このラッパーを使用する利点は次のとおりです。
  • アイデンティティの整合性: Auth0 SDKMy Account API を橋渡しし、ユーザースコープのトークンでリクエストが署名されるようにします。
  • パフォーマンスの最適化: アイデンティティワークフロー向けに最適化された共有 TanStack Query キャッシュを実装し、不要な API 呼び出しやレイアウトシフトを防ぎます。
  • デザインシステムの一貫性: Tailwind CSS の変数と Shadcn 互換のテーマをコンポーネントツリー全体に適用します。
  • グローバルフィードバック: セキュリティアラートやワークフローのステータスを知らせる統合トースト通知システムを管理します。

連携アーキテクチャ

認証プロバイダー (Auth0Provider) 内に Auth0ComponentProvider をネストします。この構成により、Auth0 API の呼び出しに必要な認証 state と token 取得メソッドにアクセスできます。

Auth0ComponentProvider を設定する

セキュリティに関する推奨事項: 組織の設定を管理する本番環境のアプリケーションには、Auth0 では Next.js のセットアップ (Regular Web App) を推奨しています。Next.js のプロキシモードではトークンがサーバー側に保存されるため、Single Page Application でブラウザーに保存されるトークンと比べて、攻撃対象領域を縮小できます。React SPA モードを使用する場合は、トレードオフを理解するために Token Storage のガイダンスを確認してください。
App.tsx

プロパティ

プロパティ必須説明
domainstringはいAuth0 テナントのドメイン (“YOUR_AUTH0_TENANT.auth0.com”)。
previewModebooleanいいえtrue の場合、API クライアントの初期化をスキップします。ドキュメントのプレビューやデモで使用します。
i18nI18nOptionsいいえcurrentLanguage と fallbackLanguage を含む国際化設定。
themeSettingsThemeSettingsいいえモード (ライト/ダーク) 、テーマバリアント (default/minimal/rounded) 、CSS 変数を含むテーマ設定。
toastSettingsToastSettingsいいえプロバイダーの選択 (sonner/custom) 、表示位置、表示時間、カスタムトーストメソッドを含むトースト通知設定。
cacheConfigQueryCacheConfigいいえTanStack Query のキャッシュを制御します (デフォルトでは stale が 2 分、GC が 5 分) 。常に最新のデータを取得するには、enabled: false を設定します。
loaderReact.ReactNodeいいえ認証の初期化中に表示するカスタムローディングコンポーネント。

ユーザー体験


i18n以下のプロパティを使用して、Universal Components をアプリケーションのデザインシステムやロケールに合わせて調整します。
プロパティ必須デフォルト説明
currentLanguagestringはい-現在の言語コード (例:“en”、“es”、“fr”)
fallbackLanguagestringいいえ”en”翻訳が存在しない場合に使用するフォールバック言語コード

themeSettings
プロパティデフォルト説明
mode”light” | “dark""light”テーマのカラーモード
theme”default” | “minimal” | “rounded""default”スタイルが異なるテーマバリアント
variablesStylingVariables共通、ライト、ダークテーマ用のCSSカスタムプロパティ
共通 (すべてのThemeに適用) :タイポグラフィ:
  • --font-size-page-header
  • --font-size-page-description
  • --font-size-heading
  • --font-size-title
  • --font-size-subtitle
  • --font-size-body
  • --font-size-paragraph
  • --font-size-label
角丸:
  • --radius-xs--radius-9xl
ライト & ダーク (Theme固有の色とシャドウ) :色:
  • --background, --foreground
  • --card, --card-foreground
  • --primary, --primary-foreground
  • --secondary, --secondary-foreground
  • --accent, --accent-foreground
  • --muted, --muted-foreground
  • --destructive, --destructive-foreground
  • --popover, --popover-foreground
  • --input, --border, --ring
  • --color-page
  • --color-info, --color-info-foreground
  • --color-success, --color-success-foreground
  • --color-warning, --color-warning-foreground
  • --color-destructive-border
  • --color-popover-border
  • --color-input-foreground
  • --color-input-muted
シャドウ:
  • --shadow-bevel-* (xs、sm、md、lg、xl、2xl)
  • --shadow-button-* (通常時、ホバー時、フォーカス時)
  • --shadow-button-destructive-*
  • --shadow-button-outlined-*
  • --shadow-input-* (通常時、ホバー時、フォーカス時)
  • --shadow-input-destructive-*
  • --shadow-checkbox-* (通常時、ホバー時)
  • --shadow-switch-* (通常時、ホバー時、フォーカス時、thumb、thumb-dark)
詳細なスタイリングの例やカスタマイズのパターンについては、Universal Components を使用したスタイルとテーマのカスタマイズを参照してください。

toastSettingsToast 設定では、Sonner (デフォルト) またはカスタムの 2 種類のプロバイダーをサポートしています。型安全性を高めるため、各プロバイダーには独自の設定構造があります。
Sonner Provider Example

状態とパフォーマンス

すべてのAuth0コンポーネントにおけるTanStack Queryのキャッシュ動作を細かく調整します。デフォルトでは、データを2分間最新の状態に保ち、5分後にガベージコレクションし、ウィンドウがフォーカスされた際の再フェッチは行いません。
プロパティデフォルト説明
enabledbooleantrueキャッシュ機能全体の有効/無効を切り替えます。falseに設定すると、古いデータは 使用されなくなり、キャッシュ済みのエントリは速やかに削除されます。
staleTimenumber120000データが古いものと見なされるまでのミリ秒数です。デフォルトは2分です。ダッシュボードでは長く、 重要なワークフローでは短く設定します。
gcTimenumber300000非アクティブなクエリがガベージコレクションされるまでのミリ秒数です。デフォルトは5分です。
refetchOnWindowFocusboolean | “always”falseブラウザが再びフォーカスを得たときにクエリを再取得するかどうかを指定します。常に最新の状態を保つには “always”を使用します。
キャッシュを無効にする: { enabled: false } を渡します。これにより、staleTime は自動的に 0 に設定され、ガベージコレクションの保持期間は 5 秒に短縮されるため、レンダリングのたびに最新のデータが取得されます。プロのヒント: ほぼリアルタイムの更新が必要な管理パネルと連携する場合は、キャッシュを有効のままにして staleTime を短くします。