> ## 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 Définit les membres (propriétés et méthodes) disponibles pour interagir avec l’écran de vérification de l’adresse courriel à la connexion.
Cet écran joue un rôle essentiel dans le processus de vérification de l’adresse courriel, généralement au moment de la connexion, où l’utilisateur doit prouver
qu’il contrôle bien l’adresse courriel en fournissant un code à usage unique. Le SDK permet d’envoyer ce code
ou d’en demander un nouveau.

Le `universal_login_context` pour cet écran (`window.universal_login_context`) contiendra :

* `client` : Renseignements sur l’application Auth0.
* `organization` (facultatif) : Détails si l’authentification concerne une organisation précise.
* `prompt` : Contexte de l’étape actuelle du parcours d’authentification (p. ex., 'login').
* `screen` : Textes de l’interface utilisateur et renseignements généraux sur l’écran. Aucun champ `data` propre à cet écran n’est défini de façon unique pour `login-email-verification` au-delà des champs standard.
* `transaction` : Détails de la transaction en cours, y compris `state` et toute erreur provenant de tentatives précédentes (p. ex., "invalid-code").

````ts Example theme={null}
export interface LoginEmailVerificationMembers extends BaseMembers {
  /**
   * Soumet le code de vérification par courriel saisi par l'utilisateur.
   * Cette action correspond à l'utilisateur qui saisit le code reçu par courriel et
   * clique sur un bouton « Continuer » ou « Vérifier ». Le SDK envoie ensuite ce code via POST
   * à l'endpoint Auth0 `/u/login-email-verification`.
   *
   * Si le code est valide, Auth0 redirige généralement l'utilisateur vers l'étape suivante du
   * flux d'authentification. Si le code est invalide, expiré ou qu'une autre erreur survient,
   * Auth0 effectue habituellement un re-render de l'écran login-email-verification, et le
   * tableau `transaction.errors` dans le contexte du SDK est mis à jour avec les détails
   * de l'échec (p. ex., code d'erreur `invalid-code`).
   *
   * @param {ContinueWithCodeOptions} payload - Un objet contenant la chaîne `code` saisie par l'utilisateur.
   *                                            Il peut également inclure des `CustomOptions` pour l'extensibilité.
   * @returns {Promise<void>} Une promesse qui se résout lorsque la soumission du formulaire est initiée.
   *                          Elle ne retourne pas de données directement à la résolution, car une redirection ou
   *                          un re-render de la page est le résultat habituel.
   * @throws {Error} Génère une erreur si `payload.code` n'est pas fourni ou n'est pas une chaîne,
   *                 ou si le `FormHandler` rencontre un problème irrécupérable lors de la soumission (p. ex., erreur réseau).
   *                 Les erreurs de validation d'Auth0 (comme un code invalide) ne sont pas générées en tant qu'erreurs JavaScript,
   *                 mais sont reflétées dans `this.transaction.errors` après l'opération.
   *
   * @example
   * ```typescript
   * // En supposant que 'manager' est une instance de LoginEmailVerification
   * const userInputCode = "123456";
   * try {
   *   await manager.continueWithCode({ code: userInputCode });
   *   // En cas de succès, la page est redirigée. Aucune action côté client n'est nécessaire ici.
   * } catch (error) {
   *   // Ce bloc catch est destiné aux erreurs inattendues, pas aux erreurs de validation Auth0.
   *   console.error("Failed to submit the verification code:", error);
   * }
   * // Après l'attente, vérifiez toujours manager.transaction.errors pour les problèmes de validation côté serveur.
   * if (manager.transaction.errors && manager.transaction.errors.length > 0) {
   *   manager.transaction.errors.forEach(err => {
   *     if (err.code === 'invalid-code') {
   *       // Afficher "Le code que vous avez saisi est invalide" à l'utilisateur.
   *     }
   *   });
   * }
   * ```
   */
  continueWithCode(payload: ContinueWithCodeOptions): Promise<void>;

  /**
   * Demande l'envoi d'un nouveau code de vérification à l'adresse courriel de l'utilisateur.
   * Cette action est généralement déclenchée lorsque l'utilisateur clique sur un bouton « Renvoyer le code », peut-être parce qu'il
   * n'a pas reçu le premier courriel, que le code a expiré ou qu'il soupçonne un problème.
   * Le SDK envoie une requête POST à l'endpoint Auth0 `/u/login-email-verification` avec une action indiquant
   * une requête de renvoi.
   *
   * Après la soumission réussie de cette requête, Auth0 tente d'envoyer un nouveau courriel.
   * La page peut faire l'objet d'un re-render. En cas de problème (p. ex., trop de tentatives de renvoi pour le même courriel,
   * identifié par le code d'erreur `too-many-emails`), `transaction.errors` sera mis à jour.
   *
   * @param {ResendCodeOptions} [payload] - Facultatif. Un objet pour `CustomOptions` si des
   *                                        paramètres supplémentaires doivent être envoyés avec la requête.
   * @returns {Promise<void>} Une promesse qui se résout lorsque la requête de renvoi est initiée.
   *                          Comme `continueWithCode`, cela entraîne généralement un re-render de la page ou une mise à jour de l'état
   *                          plutôt que des données directes dans la résolution de la promesse.
   * @throws {Error} Génère une erreur si le `FormHandler` rencontre un problème irrécupérable (p. ex., erreur réseau).
   *                 Les erreurs côté serveur (comme les rate limits) sont reflétées dans `this.transaction.errors`.
   *
   * @example
   * ```typescript
   * // En supposant que 'manager' est une instance de LoginEmailVerification
   * try {
   *   await manager.resendCode();
   *   // Facultativement, mettre à jour l'interface pour informer l'utilisateur qu'un nouveau code a été envoyé.
   *   alert("A new verification code has been dispatched to your email.");
   * } catch (error) {
   *   console.error("Failed to request a new code:", error);
   * }
   * // Après l'attente, vérifiez manager.transaction.errors pour les problèmes côté serveur.
   * if (manager.transaction.errors && manager.transaction.errors.length > 0) {
   *   manager.transaction.errors.forEach(err => {
   *     if (err.code === 'too-many-emails') {
   *       // Afficher "Vous avez demandé trop de courriels. Veuillez patienter quelques minutes."
   *     }
   *   });
   * }
   * ```
   */
  resendCode(payload?: ResendCodeOptions): Promise<void>;

  /**
   * Obtient la fonctionnalité de renvoi avec gestion du délai d'attente pour cet écran
   * @param options Options de configuration pour la fonctionnalité de renvoi
   */
  resendManager(options?: StartResendOptions): ResendControl;
}
````

<h2 id="properties">
  Propriétés
</h2>

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

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

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

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

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

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

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

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

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

<h2 id="methods">
  Méthodes
</h2>

<ParamField body="continueWithCode" type="Promise<void>">
  Soumet le code de vérification par courriel saisi par l'utilisateur.
  Cette action correspond au moment où l'utilisateur entre le code reçu par courriel et
  clique sur un bouton « Continue » ou « Verify ». Le SDK enverra ensuite ce code par POST
  au point de terminaison Auth0 `/u/login-email-verification`.

  Si le code est valide, Auth0 redirige généralement l'utilisateur vers l'étape suivante du
  flux d'authentification. Si le code est invalide, expiré ou qu'une autre erreur survient,
  Auth0 réaffichera habituellement l'écran login-email-verification, et le tableau
  `transaction.errors` dans le contexte du SDK sera mis à jour avec les détails
  de l'échec (p. ex., le code d'erreur `invalid-code`).

  Une promesse qui se résout lorsque la soumission du formulaire est lancée.
  Elle ne renvoie pas directement de données lors de sa résolution, puisqu'une redirection ou un
  réaffichage de la page est le résultat habituel.

  <h4 id="throws">
    Génère une erreur
  </h4>

  Génère une erreur si `payload.code` n'est pas fourni ou n'est pas une chaîne de caractères,
  ou si le `FormHandler` rencontre un problème irrécupérable pendant la soumission (p. ex., une erreur réseau).
  Les erreurs de validation provenant d'Auth0 (comme un code invalide) ne sont pas générées comme erreurs JavaScript,
  mais sont reflétées dans `this.transaction.errors` après l'opération.

  ```typescript Example theme={null}
  // En supposant que 'manager' est une instance de LoginEmailVerification
  const userInputCode = "123456";
  try {
    await manager.continueWithCode({ code: userInputCode });
    // En cas de succès, la page redirige. Aucune autre action côté client n'est nécessaire ici.
  } catch (error) {
    // Ce catch sert aux erreurs inattendues, pas aux erreurs de validation d'Auth0.
    console.error("Échec de la soumission du code de vérification :", error);
  }
  // Après le await, vérifiez toujours manager.transaction.errors pour les problèmes de validation côté serveur.
  if (manager.transaction.errors && manager.transaction.errors.length > 0) {
    manager.transaction.errors.forEach(err => {
      if (err.code === 'invalid-code') {
        // Affichez « Le code saisi est invalide » à l'utilisateur.
      }
    });
  }
  ```

  <Expandable title="Paramètres">
    <ParamField body="payload" type={<span><a href="/docs/fr-ca/libraries/acul/js-sdk/Screens/interfaces/ContinueWithCodeOptionPayload">ContinueWithCodeOptionPayload</a></span>}>
      Un objet contenant la chaîne `code` saisie par l'utilisateur.
      Il peut aussi inclure des `CustomOptions` pour l'extensibilité.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="resendCode" type="Promise<void>">
  Demande qu'un nouveau code de vérification soit envoyé à l'adresse courriel de l'utilisateur.
  Cette action est généralement déclenchée lorsque l'utilisateur clique sur un bouton « Resend Code », par exemple parce qu'il
  n'a pas reçu le premier courriel, que le code a expiré ou qu'il soupçonne un problème.
  Le SDK enverra une requête POST au point de terminaison Auth0 `/u/login-email-verification` avec une action indiquant
  une requête de renvoi.

  Une fois cette requête soumise avec succès, Auth0 tente d'envoyer un nouveau courriel.
  La page peut être réaffichée. En cas de problème (p. ex., trop de tentatives de renvoi pour la même adresse courriel,
  signalées par le code d'erreur `too-many-emails`), `transaction.errors` sera mis à jour.

  Une promesse qui se résout lorsque la requête de renvoi est lancée.
  Comme `continueWithCode`, cela entraîne habituellement un réaffichage de la page ou une mise à jour de l'état
  plutôt que des données directement renvoyées lors de la résolution de la promesse.

  <h4 id="throws-2">
    Génère une erreur
  </h4>

  Génère une erreur si le `FormHandler` rencontre un problème irrécupérable (p. ex., une erreur réseau).
  Les erreurs côté serveur (comme les limites de débit) sont reflétées dans `this.transaction.errors`.

  ```typescript Example theme={null}
  // En supposant que 'manager' est une instance de LoginEmailVerification
  try {
    await manager.resendCode();
    // Au besoin, mettez à jour l'UI pour informer l'utilisateur qu'un nouveau code a été envoyé.
    alert("Un nouveau code de vérification a été envoyé à votre adresse courriel.");
  } catch (error) {
    console.error("Échec de la demande d'un nouveau code :", error);
  }
  // Après le await, vérifiez manager.transaction.errors pour les problèmes côté serveur.
  if (manager.transaction.errors && manager.transaction.errors.length > 0) {
    manager.transaction.errors.forEach(err => {
      if (err.code === 'too-many-emails') {
        // Affichez « Vous avez demandé trop de courriels. Veuillez attendre quelques minutes. »
      }
    });
  }
  ```

  <Expandable title="Paramètres">
    <ParamField body="payload?" type={<span><a href="/docs/fr-ca/libraries/acul/js-sdk/Screens/interfaces/ResendCodeOptionsPayload">ResendCodeOptionsPayload</a></span>}>
      Facultatif. Un objet pour `CustomOptions` si des
      paramètres supplémentaires doivent être envoyés avec la requête.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="resendManager" type={<span><a href="/docs/fr-ca/libraries/acul/js-sdk/Screens/interfaces/ResendControl">ResendControl</a></span>}>
  Obtient la fonctionnalité de renvoi avec gestion du délai d’attente pour cet écran

  <Expandable title="Paramètres">
    <ParamField body="options?" type={<span><a href="/docs/fr-ca/libraries/acul/js-sdk/Screens/interfaces/StartResendOptions">StartResendOptions</a></span>}>
      Options de configuration pour la fonctionnalité de renvoi

      **Propriétés**

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

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

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