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

# LoginEmailVerificationMembers

LoginEmailVerificationMembers
description Login Email Verification 画面を操作するために使用できるメンバー (プロパティとメソッド) を定義します。
この画面は email verification プロセスの重要な一部であり、通常はログイン時に、ユーザーがワンタイムコードを入力して
メールアドレスの所有者であることを証明する必要があります。SDK は、このコードの送信や
新しいコードのリクエストを可能にします。

この画面の `universal_login_context` (`window.universal_login_context`) には、次のものが含まれます:

* `client`: Auth0 アプリケーションに関する情報。
* `organization` (optional): 認証が特定の organization を対象としている場合の詳細。
* `prompt`: 現在の認証 prompt のコンテキスト (例: 'login') 。
* `screen`: UI テキストと一般的な画面情報。`login-email-verification` については、標準のものを除き、画面固有の `data` フィールドは定義されていません。
* `transaction`: 進行中のトランザクションの詳細。state や、以前の試行で発生したエラー (例: "invalid-code") が含まれます。

````ts Example theme={null}
export interface LoginEmailVerificationMembers extends BaseMembers {
  /**
   * ユーザーが入力したメール確認コードを送信します。
   * このアクションは、ユーザーがメールで受け取ったコードを入力し、
   * 「Continue」または「Verify」ボタンをクリックする操作に対応します。SDKはこのコードを
   * Auth0の `/u/login-email-verification` エンドポイントにPOSTします。
   *
   * コードが有効な場合、Auth0は通常ユーザーを認証フローの次のステップにリダイレクトします。
   * コードが無効、期限切れ、またはその他のエラーが発生した場合、
   * Auth0は通常login-email-verificationスクリーンを再レンダリングし、
   * SDKのコンテキスト内の `transaction.errors` 配列が失敗の詳細
   * （例：エラーコード `invalid-code`）で更新されます。
   *
   * @param {ContinueWithCodeOptions} payload - ユーザーが入力した `code` 文字列を含むオブジェクト。
   *                                            拡張のための `CustomOptions` を含めることもできます。
   * @returns {Promise<void>} フォームの送信が開始された時点で解決されるPromise。
   *                          リダイレクトまたはページの再レンダリングが一般的な結果であるため、
   *                          解決時にデータを直接返しません。
   * @throws {Error} `payload.code` が指定されていないか文字列でない場合、
   *                 または `FormHandler` が送信中に回復不能な問題（例：ネットワークエラー）に
   *                 遭遇した場合にエラーをスローします。
   *                 Auth0からの検証エラー（無効なコードなど）はJavaScriptエラーとしてスローされず、
   *                 操作後に `this.transaction.errors` に反映されます。
   *
   * @example
   * ```typescript
   * // 'manager' は LoginEmailVerification のインスタンスと仮定します
   * const userInputCode = "123456";
   * try {
   *   await manager.continueWithCode({ code: userInputCode });
   *   // 成功した場合、ページがリダイレクトされます。ここではクライアント側の追加操作は不要です。
   * } catch (error) {
   *   // このcatchは予期しないエラー用であり、Auth0の検証エラー用ではありません。
   *   console.error("Failed to submit the verification code:", error);
   * }
   * // awaitの後、サーバー側の検証エラーについて manager.transaction.errors を必ず確認してください。
   * if (manager.transaction.errors && manager.transaction.errors.length > 0) {
   *   manager.transaction.errors.forEach(err => {
   *     if (err.code === 'invalid-code') {
   *       // ユーザーに「入力したコードは無効です」と表示します。
   *     }
   *   });
   * }
   * ```
   */
  continueWithCode(payload: ContinueWithCodeOptions): Promise<void>;

  /**
   * 新しい確認コードをユーザーのメールアドレスに送信するようリクエストします。
   * このアクションは通常、最初のメールが届かなかった、コードが期限切れになった、
   * または問題が疑われる場合に、ユーザーが「コードを再送信」ボタンをクリックしたときに呼び出されます。
   * SDKは再送信リクエストを示すアクションとともに、Auth0の `/u/login-email-verification`
   * エンドポイントにPOSTします。
   *
   * このリクエストの送信が成功すると、Auth0は新しいメールの送信を試みます。
   * ページが再レンダリングされる場合があります。問題がある場合（例：同じメールへの再送信試行が多すぎる、
   * エラーコード `too-many-emails` で識別）、`transaction.errors` が更新されます。
   *
   * @param {ResendCodeOptions} [payload] - 省略可能。リクエストとともに追加のパラメーターを
   *                                        送信する必要がある場合の `CustomOptions` 用オブジェクト。
   * @returns {Promise<void>} 再送信リクエストが開始された時点で解決されるPromise。
   *                          `continueWithCode` と同様に、Promiseの解決時に直接データが返されるのではなく、
   *                          通常はページの再レンダリングまたはstateの更新が発生します。
   * @throws {Error} `FormHandler` が回復不能な問題（例：ネットワークエラー）に遭遇した場合にスローします。
   *                 サーバー側のエラー（rate limitsなど）は `this.transaction.errors` に反映されます。
   *
   * @example
   * ```typescript
   * // 'manager' は LoginEmailVerification のインスタンスと仮定します
   * try {
   *   await manager.resendCode();
   *   // 必要に応じて、新しいコードが送信されたことをユーザーに通知するUIを更新します。
   *   alert("A new verification code has been dispatched to your email.");
   * } catch (error) {
   *   console.error("Failed to request a new code:", error);
   * }
   * // awaitの後、サーバー側の問題について manager.transaction.errors を確認してください。
   * if (manager.transaction.errors && manager.transaction.errors.length > 0) {
   *   manager.transaction.errors.forEach(err => {
   *     if (err.code === 'too-many-emails') {
   *       // 「メールのリクエスト回数が多すぎます。数分お待ちください。」と表示します。
   *     }
   *   });
   * }
   * ```
   */
  resendCode(payload?: ResendCodeOptions): Promise<void>;

  /**
   * このスクリーンのタイムアウト管理付き再送信機能を取得します
   * @param options 再送信機能の設定オプション
   */
  resendManager(options?: StartResendOptions): ResendControl;
}
````

<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/ScreenMembers">ScreenMembers</a></span>} />

<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="continueWithCode" type="Promise<void>">
  ユーザーが入力したメール確認コードを送信します。
  このアクションは、ユーザーがメールで受け取ったコードを入力し、
  "Continue" または "Verify" ボタンをクリックする操作に対応します。SDK はその後、このコードを
  Auth0 の `/u/login-email-verification` エンドポイントに POST します。

  コードが有効な場合、Auth0 は通常、ユーザーを認証フローの次のステップへリダイレクトします。コードが無効、
  期限切れ、または別のエラーが発生した場合は、
  Auth0 は通常 `login-email-verification` 画面を再レンダリングし、SDK のコンテキスト内の
  `transaction.errors` 配列が失敗の詳細
  (例: エラーコード `invalid-code`) で更新されます。

  フォーム送信が開始されると解決される Promise です。
  通常はリダイレクトまたはページの再レンダリングが発生するため、解決時に
  直接データが返されることはありません。

  <h4 id="throws">
    Throws
  </h4>

  `payload.code` が指定されていない場合、または文字列でない場合、
  あるいは `FormHandler` が送信中に回復不能な問題 (例: ネットワークエラー) に遭遇した場合は、エラーをスローします。
  Auth0 からのバリデーションエラー (無効なコードなど) は JavaScript エラーとしてはスローされず、
  操作後に `this.transaction.errors` に反映されます。

  ```typescript Example theme={null}
  // 'manager' が LoginEmailVerification のインスタンスであると仮定します
  const userInputCode = "123456";
  try {
    await manager.continueWithCode({ code: userInputCode });
    // 成功した場合、ページはリダイレクトされます。ここで追加のクライアントサイド処理は不要です。
  } catch (error) {
    // この catch は、Auth0 のバリデーションエラーではなく、予期しないエラー用です。
    console.error("確認コードの送信に失敗しました:", error);
  }
  // await の後は常に、サーバー側のバリデーションの問題について manager.transaction.errors を確認してください。
  if (manager.transaction.errors && manager.transaction.errors.length > 0) {
    manager.transaction.errors.forEach(err => {
      if (err.code === 'invalid-code') {
        // ユーザーに「入力したコードは無効です」と表示します。
      }
    });
  }
  ```

  <Expandable title="パラメーター">
    <ParamField body="payload" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/ContinueWithCodeOptionPayload">ContinueWithCodeOptionPayload</a></span>}>
      ユーザーが入力した `code` 文字列を含むオブジェクトです。
      拡張のための `CustomOptions` を含めることもできます。
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="resendCode" type="Promise<void>">
  ユーザーのメールアドレスに新しい確認コードを送信するようリクエストします。
  このアクションは通常、ユーザーが "Resend Code" ボタンをクリックしたときに呼び出されます。たとえば、
  最初のメールを受け取っていない場合、コードの有効期限が切れた場合、または問題があると考えられる場合です。
  SDK は再送リクエストを示す action とともに、Auth0 の `/u/login-email-verification` エンドポイントに POST します。

  このリクエストの送信に成功すると、Auth0 は新しいメールの送信を試みます。
  ページが再レンダリングされる場合があります。問題がある場合 (例: 同じメールに対する再送試行回数が多すぎることを示す
  エラーコード `too-many-emails`) 、`transaction.errors` が更新されます。

  再送リクエストが開始されると解決される Promise です。
  `continueWithCode` と同様、通常は Promise の解決時に直接データが返るのではなく、
  ページの再レンダリングまたは state の更新が行われます。

  <h4 id="throws-2">
    Throws
  </h4>

  `FormHandler` が回復不能な問題 (例: ネットワークエラー) に遭遇した場合はエラーをスローします。
  サーバー側のエラー (レート制限など) は `this.transaction.errors` に反映されます。

  ```typescript Example theme={null}
  // 'manager' が LoginEmailVerification のインスタンスであると仮定します
  try {
    await manager.resendCode();
    // 必要に応じて、新しいコードが送信されたことをユーザーに知らせるよう UI を更新します。
    alert("新しい確認コードをメールに送信しました。");
  } catch (error) {
    console.error("新しいコードのリクエストに失敗しました:", error);
  }
  // await の後は、サーバー側の問題について manager.transaction.errors を確認してください。
  if (manager.transaction.errors && manager.transaction.errors.length > 0) {
    manager.transaction.errors.forEach(err => {
      if (err.code === 'too-many-emails') {
        // 「メールのリクエスト回数が多すぎます。数分待ってから再試行してください。」と表示します。
      }
    });
  }
  ```

  <Expandable title="パラメーター">
    <ParamField body="payload?" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/ResendCodeOptionsPayload">ResendCodeOptionsPayload</a></span>}>
      任意。リクエストとともに追加のパラメーターを送信する必要がある場合に使用する、
      `CustomOptions` 用のオブジェクトです。
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="resendManager" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/ResendControl">ResendControl</a></span>}>
  この画面の再送機能 (タイムアウト管理付き) を取得します

  <Expandable title="パラメーター">
    <ParamField body="options?" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/interfaces/StartResendOptions">StartResendOptions</a></span>}>
      再送機能の設定オプション

      **プロパティ**

      <ParamField body="onStatusChange?" type={<span><a href="/docs/ja-jp/libraries/acul/js-sdk/Screens/type-aliases/OnStatusChangeCallback">OnStatusChangeCallback</a></span>} />

      <ParamField body="onTimeout" type="void" />

      <ParamField body="timeoutSeconds?" type="number" />
    </ParamField>
  </Expandable>
</ParamField>
