> ## 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 la méthode hors bande (OOB)

> Vérifiez l’AMF au moyen d’un défi hors bande (OOB), comme une notification push, un SMS ou un appel vocal.

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 défi hors bande (OOB) (notification push, SMS ou appel vocal). Pour vérifier l’authentification multifacteur au moyen d’un défi OOB, votre application doit envoyer une requête à `/oauth/token` avec `grant_type=http://auth0.com/oauth/grant-type/mfa-oob`. Incluez le `oob_code` que vous avez reçu dans la réponse au défi, ainsi que le `mfa_token` reçu dans le cadre de l’erreur `mfa_required`.

La réponse à cette requête dépend de l’état de la vérification du défi sous-jacent :

* Si le défi a été accepté et vérifié, la réponse sera la même que pour les types d’octroi `password` ou `http://auth0.com/oauth/grant-type/password-realm`.
* Si le défi a été rejeté, vous obtiendrez une erreur `invalid_grant`, ce qui signifie que le défi a été refusé par l’utilisateur. À ce stade, vous devez cesser d’interroger le point de terminaison, car cette réponse est définitive.
* Si la vérification du défi est toujours en attente (c’est-à-dire qu’il n’a été ni accepté ni rejeté), vous obtiendrez une erreur `authorization_pending`, ce qui signifie que vous devez réessayer la même requête quelques secondes plus tard. Si vous envoyez des requêtes trop fréquemment, vous obtiendrez une erreur `slow_down`.

Lorsque la réponse au défi comprend `binding_method: prompt`, votre application doit demander à l’utilisateur de saisir le `binding_code` et l’envoyer dans la requête. Le `binding_code` est habituellement un code à 6 chiffres (semblable à un OTP) inclus dans le défi. Aucun `binding_code` n’est nécessaire si la réponse au défi ne comprenait pas de `binding_method`. Dans ce cas, la réponse sera immédiate : vous recevrez soit une erreur `invalid_grant`, soit un `access_token`.

<div id="learn-more">
  ### En savoir plus
</div>

* [Associer des facteurs d’authentification hors bande](https://auth0.com/docs/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa/enroll-challenge-sms-voice-authenticators)

<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 de la requête
</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 l’AMF OTP, utilisez `http://auth0.com/oauth/grant-type/mfa-oob`.

  Valeurs autorisées : `http://auth0.com/oauth/grant-type/mfa-oob`
</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 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 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="oob_code" type="string" required>
  Le code OOB reçu lors de la demande de défi.
</ParamField>

<ParamField body="binding_code" type="string">
  Un code utilisé pour associer le canal secondaire au canal principal que vous utilisez pour vous authentifier.
</ParamField>

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

<ResponseSchema>
  <ResponseField name="access_token" type="string">
    Le jeton d’accès renvoyé à 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="error" type="string">
    Code d’erreur renvoyé lorsque la vérification est en attente ou a échoué.
  </ResponseField>

  <ResponseField name="error_description" type="string">
    Description de l’erreur.
  </ResponseField>
</ResponseSchema>

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

| Statut | Description                                                        |
| ------ | ------------------------------------------------------------------ |
| 200    | Réponse de vérification OOB réussie.                               |
| 400    | Requête incorrecte en raison de paramètres manquants ou invalides. |
| 401    | Non autorisé : mfa\_token ou oob\_code invalide.                   |
