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

# Obtenir un jeton

> Échanger un code d’autorisation contre un jeton constitue la dernière étape du flux de code d’autorisation avec clé de preuve pour l’échange de code (PKCE).

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`

C’est le flux utilisé par les applications mobiles pour accéder à une API. Utilisez ce point de terminaison pour échanger un code d’autorisation contre un jeton.

<div id="remarks">
  ### Remarques
</div>

* Afin d’améliorer la compatibilité des applications, Auth0 renverra désormais les informations de profil sous la forme de claims structurées, telle que définie par la spécification OIDC. Cela signifie que, pour ajouter des claims personnalisées aux jetons ID ou aux jetons d’accès, elles doivent respecter un format avec espace de noms afin d’éviter d’éventuelles collisions avec les claims OIDC standard.
* Ajoutez `offline_access` au paramètre de requête `scope` pour obtenir un jeton d’actualisation à partir de POST /oauth/token. Assurez-vous que le champ Allow Offline Access est activé dans les Settings de l’API.
* La valeur `redirect_uri` doit être indiquée comme une URL de rappel valide dans les Settings de votre Application.
* L’authentification silencieuse vous permet d’exécuter un flux d’authentification dans lequel Auth0 répond uniquement par des redirections, jamais par une page de connexion. Lorsqu’un jeton d’accès a expiré, l’authentification silencieuse peut servir à en obtenir un nouveau sans interaction de l’utilisateur, à condition que la session de Single Sign-On (SSO) de l’utilisateur n’ait pas expiré.

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

* [Flux de code d’autorisation avec clé de preuve pour l’échange de code (PKCE)](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce)
* [Appeler une API au moyen du flux de code d’autorisation avec PKCE](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce/call-your-api-using-the-authorization-code-flow-with-pkce)
* [Authentification silencieuse](https://auth0.com/docs/authenticate/login/configure-silent-authentication)

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

<ParamField header="DPoP" type="string">
  Une preuve DPoP associée à 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 utilisé. Pour code d’autorisation (PKCE), utilisez `authorization_code`.

  Valeurs autorisées : `authorization_code`
</ParamField>

<ParamField body="client_id" type="string" required>
  Le Client ID de votre application.
</ParamField>

<ParamField body="client_secret" type="string">
  Le `client_secret` de votre application. Requis pour les applications confidentielles utilisant la méthode d’authentification `client_secret_post` du point de terminaison de jetons.
</ParamField>

<ParamField body="code" type="string" required>
  Le code d’autorisation reçu lors de la requête initiale à `/authorize`.
</ParamField>

<ParamField body="code_verifier" type="string" required>
  Clé générée de façon aléatoire et cryptographiquement sécurisée, utilisée pour générer le `code_challenge` transmis à `/authorize`.
</ParamField>

<ParamField body="redirect_uri" type="string">
  Ce paramètre est requis uniquement s’il a été défini dans le point de terminaison `GET` `/authorize`.
</ParamField>

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

<ResponseSchema statusCode="200">
  <ResponseField name="access_token" type="string">
    Le jeton d’accès.
  </ResponseField>

  <ResponseField name="refresh_token" type="string">
    Le jeton d’actualisation utilisé pour obtenir de nouveaux jetons d’accès.
  </ResponseField>

  <ResponseField name="id_token" type="string">
    Le jeton ID.
  </ResponseField>

  <ResponseField name="token_type" type="string">
    Le type de jeton, généralement `Bearer`.
  </ResponseField>

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

<ResponseSchema statusCode="default error">
  <ResponseField name="error" type="string">
    Code d’erreur.
  </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     | Échange de jeton réussi. |
| default | Erreur inattendue        |
