Auth0ComponentProvider は、Auth0 Universal Components のオーケストレーション層です。Auth0 SDK がセッションとトークンを管理し、Auth0ComponentProvider がそのアイデンティティの状態を、機能しブランドに沿った UI コンテキストへと反映します。Auth0ComponentProvider は、MFA の登録などのコンポーネントで必要な権限、キャッシュ済みデータ、スタイル設定を利用できるようにします。
利点
Auth0ComponentProvider は、すべての Auth0 Universal Components で必要となるルートラッパーです。このラッパーを使用する利点は次のとおりです。
- Identity Alignment: Auth0 SDKs と My Account API の間を橋渡しし、リクエストがユーザースコープのトークンで署名されるようにします。
- Performance Optimization: ID ワークフロー向けに最適化された共有 TanStack Query キャッシュを実装し、不要な API 呼び出しやレイアウトシフトを防ぎます。
- Design System Consistency: Tailwind CSS の変数と Shadcn 互換のテーマをコンポーネントツリー全体に適用します。
- Global Feedback: セキュリティアラートやワークフローの状態を通知する、統一されたトースト通知システムを管理します。
統合アーキテクチャ
Auth0Provider) の内側に Auth0ComponentProvider をネストします。この構成により、Auth0 API の呼び出しに必要な認証状態とトークン取得メソッドにアクセスできるようになります。
Auth0ComponentProvider を設定する
- React
- Next.js
- shadcn
App.tsx
プロパティ
| プロパティ | 型 | 必須 | 説明 |
|---|---|---|---|
domain | string | はい | Auth0 テナントのドメイン (“YOUR_AUTH0_TENANT.auth0.com”) 。 |
previewMode | boolean | いいえ | true の場合、API クライアントの初期化をスキップします。ドキュメントのプレビューやデモで使用します。 |
i18n | I18nOptions | いいえ | currentLanguage や fallbackLanguage などを含む国際化設定です。 |
themeSettings | ThemeSettings | いいえ | mode (light/dark) 、テーマバリアント (default/minimal/rounded) 、CSS 変数などを含むテーマ設定です。 |
toastSettings | ToastSettings | いいえ | プロバイダーの選択 (sonner/custom) 、表示位置、表示時間、カスタム toast メソッドなどを含むトースト通知の設定です。 |
cacheConfig | QueryCacheConfig | いいえ | TanStack Query のキャッシュを制御します (デフォルトでは stale は 2 分、GC は 5 分) 。常に最新のデータを取得するには、enabled: false を設定します。 |
loader | React.ReactNode | いいえ | 認証の初期化中に表示するカスタムのローディングコンポーネントです。 |
ユーザーエクスペリエンス
i18n以下のプロパティを使用して、Universal Components をアプリケーションのデザインシステムやロケールに合わせて調整します。
| プロパティ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
currentLanguage | string | はい | - | 現在の言語コード (例: “en”、“es”、“fr”) |
fallbackLanguage | string | いいえ | ”en” | 翻訳がない場合に使用するフォールバック言語コード |
themeSettings
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
mode | ”light” | “dark" | "light” | テーマのカラーモード |
theme | ”default” | “minimal” | “rounded" | "default” | スタイルが異なるテーマバリアント |
variables | StylingVariables | 共通、ライト、ダークテーマ用のCSSカスタムプロパティ |
使用可能な CSS 変数
使用可能な CSS 変数
共通 (すべてのテーマに適用) :タイポグラフィ:
--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
--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-*(resting, hover, focus)--shadow-button-destructive-*--shadow-button-outlined-*--shadow-input-*(resting, hover, focus)--shadow-input-destructive-*--shadow-checkbox-*(resting, hover)--shadow-switch-*(resting, hover, focus, thumb, thumb-dark)
詳細なスタイリング例やカスタマイズ パターンについては、Universal
Components を使用したスタイルと
テーマのカスタマイズを参照してください。
toastSettingsToast設定では、Sonner (デフォルト) とカスタムの2種類のプロバイダータイプをサポートしています。各プロバイダーには、型安全性を高めるための独自の設定構造があります。
- Sonner Provider(デフォルト)
- Custom Provider
| Property | Type | Default | Description |
|---|---|---|---|
provider | "sonner" | "sonner" | 組み込みの Sonner トーストライブラリを使用します |
settings.position | ToastPosition | "top-right" | トーストの表示位置: “top-left”、“top-right”、“bottom-left”、“bottom-right”、“top-center”、“bottom-center” |
settings.duration | number | 4000 | トーストが自動で閉じるまでの時間 (ミリ秒) (Sonner のデフォルト) |
settings.maxToasts | number | - | 同時に表示できるトーストの最大数 |
settings.dismissible | boolean | true | ユーザー操作でトーストを手動で閉じられるかどうか (Sonner のデフォルト) |
settings.closeButton | boolean | true | トーストに閉じるボタンを表示するかどうか |
Sonner Provider Example
stateとパフォーマンス
すべての Auth0 コンポーネントに対して TanStack Query のキャッシュを細かく調整します。デフォルトでは、データを 2 分間フレッシュな状態に保ち、5 分後にガベージコレクションを実行し、ウィンドウフォーカス時の再フェッチをスキップします。| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
enabled | boolean | true | キャッシュ機能全体の有効 / 無効を切り替えます。false に設定すると、古いデータの利用が無効になり、キャッシュされたエントリは速やかにクリアされます。 |
staleTime | number | 120000 | データが古い状態になるまでのミリ秒数です。デフォルトは 2 分です。Dashboard では長めにし、重要なワークフローでは短めにしてください。 |
gcTime | number | 300000 | 非アクティブなクエリがガベージコレクションの対象になるまでのミリ秒数です。デフォルトは 5 分です。 |
refetchOnWindowFocus | boolean | “always” | false | ブラウザーが再びフォーカスされたときにクエリを再フェッチするかどうかを制御します。厳密に最新状態を保つには
“always” を使用します。 |
キャッシュを無効にする:
{ enabled: false } を渡します。これにより staleTime は自動的に 0 に設定され、ガベージコレクションまでの時間も 5 秒に短縮されるため、レンダリングのたびに常に最新のデータを取得します。プロのヒント: キャッシュは有効のままにしておき、ほぼリアルタイムの更新が必要な管理パネルと連携する場合は staleTime を短くしてください。- TTLの調整
- キャッシュを無効化