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

# Vérifier avec un code de récupération

> Vérifiez l’authentification multifacteur (MFA) à l’aide d’un code de récupération lorsque l’appareil inscrit de l’utilisateur n’est pas accessible.

export const ResponseSchema = ({statusCode, type = "{}", children}) => {
  const [open, setOpen] = useState(false);
  return <div className="border border-gray-100 dark:border-gray-800 rounded-lg mb-3 overflow-hidden">
      <div className={`flex items-center gap-2.5 px-4 py-2.5 cursor-pointer select-none ${open ? "bg-gray-50 dark:bg-gray-800" : ""}`} onClick={() => setOpen(!open)}>
        {statusCode && <span className="border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 font-mono text-xs px-1.5 py-0.5 rounded">
            {statusCode.startsWith("default") ? "default" : statusCode}
          </span>}
        <span className="text-gray-500 dark:text-gray-400 text-sm font-mono">
          {type}
        </span>
        <span className="text-gray-400 dark:text-gray-500 text-sm italic">
          application/json
        </span>
        <svg className={`ml-auto opacity-50 transition-transform duration-200 ${open ? "rotate-180" : ""}`} width="16" height="16" viewBox="0 0 16 16" fill="none">
          <path d="M4 6l4 4 4-4" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
        </svg>
      </div>
      {open && <div className="px-4 pt-1 pb-3 border-t border-gray-100 dark:border-gray-800">
          {children}
        </div>}
    </div>;
};

<div id="endpoint">
  ## Point de terminaison
</div>

`POST /oauth/token`

Vérifie l’authentification multifacteur (MFA) à l’aide d’un code de récupération. Certains fournisseurs d’authentification multifacteur (MFA) (comme Guardian) prennent en charge l’utilisation d’un code de récupération pour ouvrir une session. Utilisez cette méthode pour vous authentifier lorsque l’appareil inscrit de l’utilisateur n’est pas accessible, ou lorsque l’utilisateur ne peut pas recevoir la demande de vérification ni l’accepter en raison de problèmes de connectivité.

Pour vérifier l’authentification MFA à l’aide d’un code de récupération, votre application doit demander à l’utilisateur son code de récupération, puis envoyer une requête à `/oauth/token` avec `grant_type=http://auth0.com/oauth/grant-type/mfa-recovery-code`. Incluez le code de récupération saisi ainsi que le `mfa_token` de l’erreur `mfa_required`. Si le code de récupération est accepté, la réponse sera la même que pour les types d’autorisation `password` ou `http://auth0.com/oauth/grant-type/password-realm`. Elle peut aussi inclure un champ `recovery_code`, que l’application doit afficher à l’utilisateur final afin qu’il puisse le conserver de façon sécuritaire pour une utilisation ultérieure.

<div id="headers">
  ## En-têtes
</div>

<ParamField header="DPoP" type="string">
  Une preuve DPoP pour la requête. Ce paramètre est facultatif et n’est requis que si votre application utilise Demonstrating Proof-of-Possession.
</ParamField>

<div id="body-parameters">
  ## Paramètres du corps
</div>

<ParamField body="grant_type" type="string" required>
  Indique le flux que vous utilisez. Pour un code de récupération, utilisez `http://auth0.com/oauth/grant-type/mfa-recovery-code`.

  Valeurs autorisées : `http://auth0.com/oauth/grant-type/mfa-recovery-code`
</ParamField>

<ParamField body="client_id" type="string" required>
  L'ID client de votre application.
</ParamField>

<ParamField body="client_assertion" type="string">
  Un JWT contenant une assertion signée à l’aide des identifiants de votre application.
</ParamField>

<ParamField body="client_assertion_type" type="string">
  La valeur est `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`.

  Valeurs autorisées : `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`
</ParamField>

<ParamField body="client_secret" type="string">
  Le Secret client de votre application.
</ParamField>

<ParamField body="mfa_token" type="string" required>
  Le `mfa_token` que vous avez reçu dans l’erreur `mfa_required`.
</ParamField>

<ParamField body="recovery_code" type="string" required>
  Code de récupération fourni par l’utilisateur final.
</ParamField>

<div id="response-schema">
  ## Schéma de réponse
</div>

<ResponseSchema>
  <ResponseField name="access_token" type="string">
    Le jeton d’accès obtenu à la suite d’une vérification réussie.
  </ResponseField>

  <ResponseField name="token_type" type="string">
    Le type de jeton émis.
  </ResponseField>

  <ResponseField name="expires_in" type="integer">
    La durée de validité du jeton d’accès, en secondes.
  </ResponseField>

  <ResponseField name="recovery_code" type="string">
    Un nouveau code de récupération à conserver en lieu sûr pour une utilisation ultérieure.
  </ResponseField>
</ResponseSchema>

<div id="response-messages">
  ## Messages de réponse
</div>

| Statut | Description                                                          |
| ------ | -------------------------------------------------------------------- |
| 200    | Réponse réussie pour la vérification du code de récupération.        |
| 400    | Requête incorrecte en raison de paramètres manquants ou non valides. |
| 401    | Non autorisé : `mfa_token` ou `recovery_code` non valide.            |
