Skip to main content
UserPasskeyManagement コンポーネントを使用すると、ユーザーは My Account API を使用して、カード形式の単一インターフェースでパスキーを登録・取り消しできます。レンダリングにプロップスは必要ありません。 このコンポーネントには、登録済みのパスキーのリスト、新しいパスキーを追加するボタン、取り消しオプションが表示されます。
登録済みのパスキーを表示するユーザーパスキー管理コンポーネント

前提条件

パスキーのサポートを有効にするには、次の要件を満たす必要があります。
  • Auth0 テナントにカスタムドメインを設定する。パスキーを使用するには、カスタムドメインが必要です。
  • Auth0 のデータベース接続でパスキーを有効にする。Auth0 テナントでパスキーを有効にする方法については、パスキーを設定するを参照してください。
  • オリジンを一致させる。Relying Party ID は、アプリケーションのドメインと同一であるか、その登録可能な親ドメインである必要があります。詳細については、パスキーの Relying Party IDを参照してください。
  • アプリケーションで HTTPS を使用していることを確認する。WebAuthn では、アプリケーションが HTTPS 経由で提供される必要があります。
  • アプリケーションに Universal Components をインストールして設定する。Universal Components のインストールと設定については、アカウントセキュリティ UI を構築するを参照してください。

アプリケーションを設定する

フレームワークを選択して、環境変数とUniversal Componentsを設定します。

コンポーネントをインストールする

react-hook-form@tanstack/react-query はピア依存関係です。このコマンドにより、共有ユーティリティおよび Auth0 連携に必要な @auth0/universal-components-core もインストールされます。

はじめに

  • コンポーネントはフレームワークにかかわらず、常にルートエントリ @auth0/universal-components-react からインポートします。
  • フレームワーク固有のサブパスを使用するのは Auth0ComponentProvider コンポーネントだけです。React アプリケーションには /spa、Next.js アプリケーションには /rwa を使用します。

プロップス

表示プロップス

表示プロップスは、コンポーネントの動作に影響を与えずに表示方法を制御します。
プロップスデフォルト説明
hideHeaderbooleanfalseページのヘッダー (タイトルと説明) を非表示にします。パスキー一覧を含むセクションカードは常に表示されます。

Action プロップス

Action プロップスを使用すると、コンポーネントのライフサイクルイベントにフックして、操作をトリガーまたはキャンセルできます。
プロップ説明
addActionComponentAction<void>パスキー追加フロー用のライフサイクルフックです。追加ボタンを非表示にするには、disabled: trueを設定します。
revokeActionComponentAction<Passkey>パスキー取り消しフロー用のライフサイクルフックです。取り消しオプションを非表示にするには、disabled: trueを設定します。
onFetch() => voidパスキーのリストが正常に読み込まれた後にトリガーされます。
addAction パスキー追加フローを制御します。onBeforeはブラウザーにWebAuthnプロンプトが表示される前にトリガーされます。キャンセルするにはfalseを返します (たとえば、パスキー数の上限を設ける場合) 。onAfterは新しいパスキーが保存された後にトリガーされます。
  • disabledは「パスキーを追加」ボタンを非表示にします。
  • onBefore()はWebAuthn登録セレモニーの前に実行されます。キャンセルするにはfalseを返します。
  • onAfter()はパスキーが正常に登録された後に実行されます。セッションの状態を更新したり、分析データを送信したりする際に使用します。
revokeAction パスキーの取り消しフローを制御します。onBefore は組み込みの確認モーダルが表示される前に実行されるため、ユーザーにモーダルが表示される前にフローをキャンセルできます。onAfter は、パスキーがアカウントから削除された後にトリガーされます。
  • disabled は、パスキーアクションメニューから取り消しオプションを非表示にします。
  • onBefore(passkey) は、取り消し API 呼び出しの前に実行されます。Passkey オブジェクトを受け取ります。キャンセルするには false を返します。
  • onAfter(passkey) は、パスキーが正常に取り消された後に実行されます。取り消された Passkey オブジェクトを受け取ります。
onFetch マウント時にパスキーのリストが正常に読み込まれた後にトリガーされます。ユーザーに登録済みのパスキーがあるかどうかに応じて、関連するUIを表示または非表示にするために使用します。
リストを読み取り専用でレンダリングするには、両方のActionで disabled: true を設定します。

プロップスをカスタマイズする

カスタマイズ用プロップスを使用すると、ソースコードを変更せずに文言やスタイリングを調整できます。
プロップス説明
customMessagesPartial<UserPasskeyManagementMessages>デフォルトのUIテキストと翻訳を上書きします。
stylingComponentStyling<UserPasskeyManagementClasses>CSS変数とクラスの上書き。
customMessages すべてのテキストと翻訳をカスタマイズできます。すべてのフィールドは任意です。
  • headertitledescription (ページレベルのヘッダー。hideHeadertrue の場合は非表示)
  • トップレベルのカードsection_titleenabled (パスキーが登録されている場合に表示されるバッジ) 、no_passkeys (パスキーがない場合に表示するメッセージ) 、add_passkey (追加ボタンのラベル)
  • リスト項目created_at (プレースホルダーとして ${date} を使用) 、last_used (プレースホルダーとして ${date} を使用)
  • Actionsactions.revoke (パスキーごとのアクションメニュー内のラベル)
  • 成功トーストsuccess.addsuccess.revoke
  • 取り消し確認モーダルmodals.revoke.titlemodals.revoke.consent (パスキー名を太字にするには <bold>${name}</bold> を使用) 、modals.revoke.cancelmodals.revoke.confirm
スタイルをカスタマイズ CSS変数とクラスのオーバーライドを使用して外観をカスタマイズできます。ライト/ダークテーマに対応しています。
変数—CSSカスタムプロパティ
  • common 両方のテーマに適用
  • light ライトモードのみ
  • dark ダークモードのみ
クラスのオーバーライド
  • UserPasskeyManagement-root パスキーリストを囲む外側のカードコンテナ
  • UserPasskeyManagement-item 各パスキー行のカード
  • PasskeyActionModal-modalContent 取り消し確認モーダルのコンテンツ領域

TypeScript 型定義

高度なカスタマイズ

上記のコンポーネント設定に加え、パスキー管理用のカスタムインターフェースを構築する必要がある場合は、useUserPasskey フックを使用します。
フックは customMessagesaddActionrevokeActiononFetch を受け取ります。パスキーデータ、読み込み状態とアクションの状態、現在の取り消し対象、パスキーの登録および取り消し用ハンドラーを返します。 組み込みのインターフェースを使用する場合は、UserPasskeyManagement を使用してください。フックを使用する場合は、対応する取り消し確認 UI と、それを閉じる動作を実装してください。

詳しく見る

ユーザーのMFA管理

パスキーと併せて、MFA認証要素 (TOTP、SMS、メールOTP、プッシュ、リカバリーコード) を管理します。

セルフサービスのアカウントセキュリティインターフェースを構築する

すべてのMy Accountコンポーネントの概要、前提条件、フレームワークの設定方法を紹介します。