> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.generaltranslation.app/llms.txt
> Use this file to discover all available pages before exploring further.

# MfaWebAuthnRoamingChallenge

```ts Example theme={null}
import MfaWebAuthnRoamingChallenge from "@auth0/auth0-acul-js/mfa-webauthn-roaming-challenge";

const mfaWebAuthnRoamingChallengeManager = new MfaWebAuthnRoamingChallenge();
```

<div id="constructors">
  ## コンストラクター
</div>

<ParamField body="MfaWebAuthnRoamingChallenge" type="Constructor">
  新しい `MfaWebAuthnRoamingChallenge` クラスのインスタンスを初期化します。

  #### 例外

  Universal Login コンテキストを利用できない場合、またはコンテキスト内の画面名が
  `MfaWebAuthnRoamingChallenge.screenIdentifier` と一致しない場合に例外がスローされます。
</ParamField>

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

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

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

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

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

<ParamField body="screen" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/ScreenMembersOnMfaWebAuthnRoamingChallenge">ScreenMembersOnMfaWebAuthnRoamingChallenge</a></span>} />

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

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

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

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

<ParamField body="screenIdentifier" type="string">
  static
</ParamField>

<div id="methods">
  ## メソッド
</div>

<ParamField body="getErrors" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/Error">Error</a>[]</span>}>
  コンテキストからトランザクションエラーの配列を取得し、存在しない場合は空の配列を返します。

  トランザクションコンテキストに含まれるエラーオブジェクトの配列。
</ParamField>

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

  エラーレポートが送信されたときに解決される Promise。

  <div id="throws">
    #### スロー
  </div>

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

  ```typescript Example theme={null}
  // 'sdk' が MfaWebAuthnRoamingChallenge のインスタンスであると仮定します
  // そして webAuthnError が、失敗した navigator.credentials.get() 呼び出しからのエラーオブジェクトであるとします。
  try {
    await sdk.reportWebAuthnError({
      error: { name: webAuthnError.name, message: webAuthnError.message }
    });
  } catch (submitError) {
    console.error("Failed to report WebAuthn error:", submitError);
  }
  ```

  <Expandable title="Parameters">
    <ParamField body="options" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/MfaWebAuthnRoamingChallengeReportErrorOptions">MfaWebAuthnRoamingChallengeReportErrorOptions</a></span>}>
      WebAuthn API からの `name` と `message` を持つ `error` オブジェクトと、
      その他の任意のカスタムオプションを含みます。

      **プロパティ**

      <ParamField body="error" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/WebAuthnErrorDetails">WebAuthnErrorDetails</a></span>}>
        報告対象となる WebAuthn API のエラーオブジェクト。
      </ParamField>
    </ParamField>
  </Expandable>
</ParamField>

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

  アクションが送信されたときに解決される Promise。

  <div id="throws">
    #### スロー
  </div>

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

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

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

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

  検証試行が送信されたときに解決される Promise。
  通常、成功時にはリダイレクトが行われるため、データを直接返しません。

  <div id="throws">
    #### スロー
  </div>

  `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);
    // ページが再読み込みされた場合は、サーバー側の検証メッセージについて sdk.transaction.errors を確認します。
  }
  ```

  <Expandable title="Parameters">
    <ParamField body="options?" type={<span><a href="/docs/libraries/acul/js-sdk/Screens/interfaces/VerifySecurityKeyOptions">VerifySecurityKeyOptions</a></span>}>
      **プロパティ**

      <ParamField body="rememberDevice?" type="boolean" />
    </ParamField>
  </Expandable>
</ParamField>
