> ## 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.

# MfaWebAuthnPlatformChallengeMembers

MfaWebAuthnPlatformChallengeMembers

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

  /**
   * WebAuthnプラットフォーム認証器のチャレンジを開始します。
   * このメソッドは内部的に、`screen.publicKey` で提供されたチャレンジオプションを使用して
   * `navigator.credentials.get()` を呼び出します。
   * 成功した場合、`action: "default"` とともに取得したクレデンシャルをAuth0に送信します。
   *
   * `navigator.credentials.get()` が失敗した場合（例：ユーザーによるキャンセル、タイムアウト、その他のWebAuthn APIエラー）、
   * エラーの詳細を指定して `reportBrowserError` を呼び出すことを推奨します。
   *
   * @param {VerifyPlatformAuthenticatorOptions} [options] - 検証プロセスのオプションパラメータ。
   * `rememberDevice`（`screen.showRememberDevice` が true の場合）やその他のカスタムオプションを指定できます。
   * @returns {Promise<void>} 検証リクエストの送信が完了したときに解決されるPromise。
   *                          操作が成功した場合、通常はリダイレクトが発生します。
   * @throws {Error} `screen.publicKey` が存在しない場合、
   *                 `navigator.credentials.get()` が `getPasskeyCredentials` で処理されない予期しないエラーで失敗した場合、
   *                 またはAuth0へのフォーム送信が失敗した場合にエラーをスローします。
   *
   * @example
   * ```typescript
   * // Assuming 'sdk' is an instance of MfaWebAuthnPlatformChallenge
   * try {
   *   const remember = sdk.screen.showRememberDevice && userCheckedRememberDeviceBox;
   *   await sdk.verify({ rememberDevice: remember });
   *   // On success, Auth0 handles redirection.
   * } catch (error) {
   *   console.error("Platform authenticator verification failed:", error);
   *   // If it's a WebAuthn API error, report it
   *   if (error.name && error.message) { // Basic check for DOMException like error
   *     await sdk.reportBrowserError({ error: { name: error.name, message: error.message } });
   *   }
   *   // Check sdk.transaction.errors for server-side validation messages if the page reloads.
   * }
   * ```
   */
  verify(options?: VerifyPlatformAuthenticatorOptions): Promise<void>;

  /**
   * Reports a specific WebAuthn API error (from `navigator.credentials.get()`) to Auth0.
   * This method should be used when `verify()` (or a manual `navigator.credentials.get()` call) fails due to
   * a browser-side WebAuthn issue (e.g., user cancellation `NotAllowedError`, timeout).
   * It submits the error details with `action: "showError::{errorDetailsJsonString}"` and an empty `response`.
   *
   * @param {ReportBrowserErrorOptions} options - Contains the `error` object (with `name` and `message`
   * from the WebAuthn API DOMException) 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 (e.g., network error, invalid state).
   *
   * @example
   * ```typescript
   * // Assuming 'sdk' is an instance of MfaWebAuthnPlatformChallenge
   * // And webAuthnDomException is an error object from a failed navigator.credentials.get() call.
   * try {
   *   await sdk.reportBrowserError({
   *     error: { name: webAuthnDomException.name, message: webAuthnDomException.message }
   *   });
   *   // Auth0 will process this error and may re-render the page or redirect.
   * } catch (submitError) {
   *   console.error("Failed to report WebAuthn browser error:", submitError);
   * }
   * ```
   */
  reportBrowserError(options: ReportBrowserErrorOptions): Promise<void>;

  /**
   * Allows the user to opt-out of the WebAuthn platform challenge and select a different MFA method.
   * 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 to be sent with the request.
   * @returns {Promise<void>} A promise that resolves when the 'pick-authenticator' action is submitted.
   * @throws {Error} Throws an error if the form submission fails.
   *
   * @example
   * ```typescript
   * // Assuming 'sdk' is an instance of MfaWebAuthnPlatformChallenge
   * 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/ScreenMembersOnMfaWebAuthnPlatformChallenge">ScreenMembersOnMfaWebAuthnPlatformChallenge</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="reportBrowserError" type="Promise<void>">
  特定の WebAuthn API エラー (`navigator.credentials.get()` で発生したもの) を Auth0 に報告します。
  このメソッドは、`verify()` (または手動での `navigator.credentials.get()` 呼び出し) が、
  ブラウザー側の WebAuthn の問題 (例: ユーザーによるキャンセル `NotAllowedError`、タイムアウト) によって失敗した場合に使用します。
  `action: "showError::{errorDetailsJsonString}"` と空の `response` を付けて、エラーの詳細を送信します。

  エラー報告の送信が完了すると解決される Promise です。

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

  フォーム送信に失敗した場合 (例: ネットワークエラー、無効な `state`) 、エラーをスローします。

  ```typescript Example theme={null}
  // 'sdk' が MfaWebAuthnPlatformChallenge のインスタンスであるとします
  // また、webAuthnDomException は失敗した navigator.credentials.get() 呼び出しから取得したエラーオブジェクトです。
  try {
    await sdk.reportBrowserError({
      error: { name: webAuthnDomException.name, message: webAuthnDomException.message }
    });
    // Auth0 はこのエラーを処理し、ページを再レンダリングするか、リダイレクトすることがあります。
  } catch (submitError) {
    console.error("Failed to report WebAuthn browser error:", submitError);
  }
  ```

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

      **プロパティ**

      <ParamField body="error" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/WebAuthnErrorDetails">WebAuthnErrorDetails</a></span>}>
        報告対象の WebAuthn API (`navigator.credentials.get()`) のエラーオブジェクトです。
      </ParamField>
    </ParamField>
  </Expandable>
</ParamField>

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

  `pick-authenticator` アクションの送信が完了すると解決される Promise です。

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

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

  ```typescript Example theme={null}
  // 'sdk' が MfaWebAuthnPlatformChallenge のインスタンスであるとします
  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/MfaWebAuthnPlatformChallengeTryAnotherMethodOptions">MfaWebAuthnPlatformChallengeTryAnotherMethodOptions</a></span>}>
      リクエストとともに送信する任意のカスタムパラメーターです。
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="verify" type="Promise<void>">
  WebAuthn のプラットフォーム認証器チャレンジを開始します。
  このメソッドは内部的に、`screen.publicKey` で提供されるチャレンジオプションを使って
  `navigator.credentials.get()` を呼び出します。
  成功すると、生成された認証情報を `action: "default"` とともに Auth0 に送信します。

  `navigator.credentials.get()` が失敗した場合 (例: ユーザーによるキャンセル、タイムアウト、またはその他の WebAuthn API エラー) 、
  エラーの詳細を指定して `reportBrowserError` を呼び出すことをおすすめします。

  検証の試行が送信されると解決される Promise です。
  通常、成功するとリダイレクトされます。

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

  `screen.publicKey` がない場合、
  `navigator.credentials.get()` が `getPasskeyCredentials` で処理されない想定外のエラーで失敗した場合、
  または Auth0 へのフォーム送信に失敗した場合は、エラーをスローします。

  ```typescript Example theme={null}
  // 'sdk' は MfaWebAuthnPlatformChallenge のインスタンスであるとします
  try {
    const remember = sdk.screen.showRememberDevice && userCheckedRememberDeviceBox;
    await sdk.verify({ rememberDevice: remember });
    // 成功時のリダイレクトは Auth0 が処理します。
  } catch (error) {
    console.error("Platform authenticator verification failed:", error);
    // WebAuthn API エラーであれば報告します
    if (error.name && error.message) { // DOMException のようなエラーかどうかの簡易チェック
      await sdk.reportBrowserError({ error: { name: error.name, message: error.message } });
    }
    // ページが再読み込みされた場合は、サーバー側の検証メッセージを sdk.transaction.errors で確認します。
  }
  ```

  <Expandable title="パラメーター">
    <ParamField body="options?" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/VerifyPlatformAuthenticatorOptions">VerifyPlatformAuthenticatorOptions</a></span>}>
      検証処理に関する省略可能なパラメーターです。
      たとえば、`rememberDevice` (`screen.showRememberDevice` が true の場合) やその他のカスタムオプションを指定できます。

      **プロパティ**

      <ParamField body="rememberDevice?" type="boolean">
        省略可能です。true の場合、今後の MFA チャレンジに備えてこのブラウザーを記憶しようとします。
        `rememberBrowser` フォームフィールドに対応します。これは `screen.showRememberDevice` が true の場合にのみ適用されます。
      </ParamField>
    </ParamField>
  </Expandable>
</ParamField>
