> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# MfaWebAuthnRoamingChallengeMembers

MfaWebAuthnRoamingChallengeMembers

````ts Example theme={null}
export interface MfaWebAuthnRoamingChallengeMembers extends BaseMembers {
  /**
   * Screen-specific properties and data, including WebAuthn challenge options.
   * @type {ScreenMembersOnMfaWebAuthnRoamingChallenge}
   */
  screen: ScreenMembersOnMfaWebAuthnRoamingChallenge;

  /**
   * `screen.data.publicKeyChallengeOptions` で提供されたオプションを使用して `navigator.credentials.get()` を呼び出し、WebAuthn チャレンジを開始します。
   * 成功した場合、`action: "default"` とともに結果の資格情報をAuth0に送信します。
   * `navigator.credentials.get()` が既知のWebAuthn APIエラー（`NotAllowedError` など）で失敗した場合、
   * このメソッドは内部的に `reportWebAuthnError` を呼び出してAuth0に通知します。
   *
   * @param {VerifySecurityKeyOptions} [options] - 検証プロセスのオプションパラメーター（`rememberDevice` やその他のカスタムオプションなど）。
   * @returns {Promise<void>} 検証の試行が送信されたときに解決されるPromise。
   *                          成功した操作は通常リダイレクトが発生するため、データを直接返しません。
   * @throws {Error} `screen.data.publicKeyChallengeOptions` が存在しない場合、
   *                 `navigator.credentials.get()` が予期しないエラーで失敗した場合、
   *                 またはAuth0へのフォーム送信が失敗した場合にエラーをスローします。
   *
   * @example
   * ```typescript
   * // Assuming 'sdk' is an instance of MfaWebAuthnRoamingChallenge
   * try {
   *   await sdk.verify({ rememberDevice: true });
   *   // On success, Auth0 handles redirection.
   * } catch (error) {
   *   console.error("Security key verification failed:", error);
   *   // Check sdk.transaction.errors for server-side validation messages if the page reloads.
   * }
   * ```
   */
  verify(options?: VerifySecurityKeyOptions): Promise<void>;

  /**
   * Reports a specific WebAuthn API error to Auth0.
   * This method should be used if `navigator.credentials.get()` fails in a way that
   * `verify()` doesn't automatically handle, or if the developer wants to explicitly
   * report an error before trying another action.
   * It submits the error details with `action: "showError::{errorDetails}"`.
   *
   * @param {ReportWebAuthnErrorOptions} options - Contains the `error` object with `name` and `message`
   * from the WebAuthn API, and any other custom options.
   * @returns {Promise<void>} A promise that resolves when the error report is submitted.
   * @throws {Error} Throws an error if the form submission fails.
   *
   * @example
   * ```typescript
   * // Assuming 'sdk' is an instance of MfaWebAuthnRoamingChallenge
   * // And webAuthnError is an error object from a failed navigator.credentials.get() call.
   * try {
   *   await sdk.reportWebAuthnError({
   *     error: { name: webAuthnError.name, message: webAuthnError.message }
   *   });
   * } catch (submitError) {
   *   console.error("Failed to report WebAuthn error:", submitError);
   * }
   * ```
   */
  reportWebAuthnError(options: ReportWebAuthnErrorOptions): Promise<void>;

  /**
   * Allows the user to opt-out of the WebAuthn チャレンジ and select a different MFA方式.
   * This action submits `action: "pick-authenticator"` to Auth0, which should navigate
   * the user to an MFA factor selection screen.
   *
   * @param {TryAnotherMethodOptions} [options] - Optional custom parameters for the request.
   * @returns {Promise<void>} A promise that resolves when the action is submitted.
   * @throws {Error} Throws an error if the form submission fails.
   *
   * @example
   * ```typescript
   * // Assuming 'sdk' is an instance of MfaWebAuthnRoamingChallenge
   * try {
   *   await sdk.tryAnotherMethod();
   *   // On success, Auth0 handles redirection to MFA selection.
   * } catch (error) {
   *   console.error("Failed to switch MFA method:", error);
   * }
   * ```
   */
  tryAnotherMethod(options?: TryAnotherMethodOptions): Promise<void>;
}
````

<h2 id="properties">
  プロパティ
</h2>

<ParamField body="branding" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/BrandingMembers">BrandingMembers</a></span>} />

<ParamField body="client" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/ClientMembers">ClientMembers</a></span>} />

<ParamField body="organization" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/OrganizationMembers">OrganizationMembers</a></span>} />

<ParamField body="prompt" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/PromptMembers">PromptMembers</a></span>} />

<ParamField body="screen" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/ScreenMembersOnMfaWebAuthnRoamingChallenge">ScreenMembersOnMfaWebAuthnRoamingChallenge</a></span>}>
  画面固有のプロパティとデータ (WebAuthnのチャレンジオプションを含む) 。
</ParamField>

<ParamField body="tenant" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/TenantMembers">TenantMembers</a></span>} />

<ParamField body="transaction" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/TransactionMembers">TransactionMembers</a></span>} />

<ParamField body="untrustedData" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/UntrustedDataMembers">UntrustedDataMembers</a></span>} />

<ParamField body="user" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/UserMembers">UserMembers</a></span>} />

<h2 id="methods">
  メソッド
</h2>

<ParamField body="reportWebAuthnError" type="Promise<void>">
  特定の WebAuthn API エラーを Auth0 に報告します。
  このメソッドは、`navigator.credentials.get()` が
  `verify()` で自動処理されない形で失敗した場合、または開発者が別のアクションを試す前に
  明示的にエラーを報告したい場合に使用します。
  エラーの詳細は `action: "showError::{errorDetails}"` とともに送信されます。

  エラー報告の送信完了時に resolve される Promise。

  <h4 id="throws">
    例外
  </h4>

  フォームの送信に失敗した場合はエラーをスローします。

  ```typescript Example theme={null}
  // 'sdk' が MfaWebAuthnRoamingChallenge のインスタンスであると仮定します
  // また、webAuthnError は navigator.credentials.get() の失敗時に返された error object です。
  try {
    await sdk.reportWebAuthnError({
      error: { name: webAuthnError.name, message: webAuthnError.message }
    });
  } catch (submitError) {
    console.error("Failed to report WebAuthn error:", submitError);
  }
  ```

  <Expandable title="パラメーター">
    <ParamField body="options" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/MfaWebAuthnRoamingChallengeReportErrorOptions">MfaWebAuthnRoamingChallengeReportErrorOptions</a></span>}>
      WebAuthn API の `name` と `message` を含む
      `error` オブジェクトと、そのほかのカスタムオプションを含みます。

      **プロパティ**

      <ParamField body="error" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/WebAuthnErrorDetails">WebAuthnErrorDetails</a></span>}>
        報告する WebAuthn API の error object。
      </ParamField>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="tryAnotherMethod" type="Promise<void>">
  ユーザーが WebAuthn チャレンジ を中止し、別の MFA方式 を選択できるようにします。
  このアクションは `action: "pick-authenticator"` を Auth0 に送信し、
  ユーザーを MFA 認証要素の選択画面へ移動させます。

  アクションの送信完了時に resolve される Promise。

  <h4 id="throws-2">
    例外
  </h4>

  フォームの送信に失敗した場合はエラーをスローします。

  ```typescript Example theme={null}
  // 'sdk' が MfaWebAuthnRoamingChallenge のインスタンスであると仮定します
  try {
    await sdk.tryAnotherMethod();
    // 成功すると、Auth0 が MFA 選択へのリダイレクトを処理します。
  } catch (error) {
    console.error("Failed to switch MFA method:", error);
  }
  ```

  <Expandable title="パラメーター">
    <ParamField body="options?" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/MfaWebAuthnRoamingChallengeTryAnotherMethodOptions">MfaWebAuthnRoamingChallengeTryAnotherMethodOptions</a></span>}>
      request 用の任意のカスタムパラメーター。
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="verify" type="Promise<void>">
  `screen.data.publicKeyChallengeOptions` で指定されたオプションを使って
  `navigator.credentials.get()` を呼び出し、WebAuthn チャレンジ を開始します。
  成功した場合は、生成された credential を `action: "default"` とともに Auth0 に送信します。
  `navigator.credentials.get()` が既知の WebAuthn API エラー (`NotAllowedError` など) で失敗した場合、
  このメソッドは内部で `reportWebAuthnError` を呼び出して Auth0 に通知します。

  検証試行の送信完了時に resolve される Promise。
  通常、成功時はリダイレクトされるため、データは直接返されません。

  <h4 id="throws-3">
    例外
  </h4>

  `screen.data.publicKeyChallengeOptions` がない場合、
  `navigator.credentials.get()` が予期しないエラーで失敗した場合、
  または Auth0 へのフォーム送信に失敗した場合はエラーをスローします。

  ```typescript Example theme={null}
  // 'sdk' が MfaWebAuthnRoamingChallenge のインスタンスであると仮定します
  try {
    await sdk.verify({ rememberDevice: true });
    // 成功すると、Auth0 がリダイレクトを処理します。
  } catch (error) {
    console.error("Security key verification failed:", error);
    // ページが再読み込みされた場合は、Server-side のバリデーションメッセージを確認するために sdk.transaction.errors を確認してください。
  }
  ```

  <Expandable title="パラメーター">
    <ParamField body="options?" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/VerifySecurityKeyOptions">VerifySecurityKeyOptions</a></span>}>
      検証プロセス用の任意のパラメーターです。
      `rememberDevice` やその他のカスタムオプションが含まれます。

      **プロパティ**

      <ParamField body="rememberDevice?" type="boolean">
        任意。true の場合、今後の MFA challenges で使うためにブラウザーを記憶しようとします。
        `rememberBrowser` フォームフィールドに対応します。
      </ParamField>
    </ParamField>
  </Expandable>
</ParamField>
