> ## 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érifier l’AMF au moyen d’un code de récupération lorsque l’appareil inscrit de l’utilisateur n’est pas disponible.

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 (AMF) au moyen d’un code de récupération. Certains fournisseurs d’authentification multifacteur (AMF) (comme Guardian) permettent d’utiliser un code de récupération pour se connecter. Utilisez cette méthode pour authentifier l’utilisateur lorsque son appareil inscrit n’est pas accessible, ou qu’il ne peut pas recevoir la demande de vérification ni l’accepter en raison de problèmes de connectivité.

Pour vérifier l’authentification AMF au moyen d’un code de récupération, votre application doit inviter l’utilisateur à saisir le 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’attribution `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 soit conservé 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 champ 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>

<div className="prose-sm prose-gray dark:prose-invert">
  <span data-as="p">Le corps de la requête est au format `application/x-www-form-urlencoded`.</span>
</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>
  Le Client ID de votre application.
</ParamField>

<ParamField body="client_assertion" type="string">
  Un JWT contenant une assertion signée avec les 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 Client Secret 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>
  Le 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 après 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 indiquant la réussite de la vérification du code de récupération. |
| 400    | Requête invalide en raison de paramètres manquants ou invalides.          |
| 401    | Non autorisé : `mfa_token` ou `recovery_code` invalide.                   |
