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

> Échangez un code d’autorisation contre des jetons au moyen du flux de code d’autorisation.

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`

Pour l’authentification par jeton, utilisez le point de terminaison `oauth/token` pour obtenir un jeton d’accès afin que votre application puisse effectuer des appels authentifiés à une API sécurisée. Au besoin, vous pouvez aussi récupérer un ID Token et un jeton d’actualisation. Les ID Tokens contiennent des renseignements sur l’utilisateur sous forme de scopes que votre application peut extraire pour offrir une meilleure expérience utilisateur. Les jetons d’actualisation permettent à votre application de demander un nouveau jeton d’accès lorsque le jeton actuel expire, sans interrompre l’expérience utilisateur. Pour en savoir plus, consultez [ID Tokens](https://auth0.com/docs/secure/tokens/id-tokens) et [Refresh Tokens](https://auth0.com/docs/secure/tokens/refresh-tokens).

Notez que seuls les flux OAuth 2.0 suivants permettent de récupérer un jeton d’actualisation :

* [Flux de code d’autorisation (code d’autorisation)](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow)
* [Flux de code d’autorisation avec PKCE (code d’autorisation avec PKCE)](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce)
* [Mot de passe du propriétaire de la ressource](https://auth0.com/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow)
* [Flux d’autorisation de l’appareil](https://auth0.com/docs/get-started/authentication-and-authorization-flow/device-authorization-flow)
* Échange de jetons\*

Il s’agit du flux utilisé par les applications Web classiques pour accéder à une API. Utilisez ce point de terminaison pour échanger un code d’autorisation contre un jeton.

<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 le mécanisme Demonstrating Proof-of-Possession.
</ParamField>

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

<ParamField body="grant_type" type="string" required>
  Indique le flux utilisé. Pour code d’autorisation, utilisez `authorization_code`.
</ParamField>

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

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

<ParamField body="code" type="string" required>
  Le code d’autorisation reçu lors de l’appel initial à `/authorize`.
</ParamField>

<ParamField body="redirect_uri" type="string">
  Ce champ est requis uniquement s’il a été défini au point de terminaison [GET /authorize](#authorization-code-grant). La valeur fournie à `/authorize` doit correspondre à celle définie à `/oauth/token`.
</ParamField>

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

<ResponseSchema>
  <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 d’identité.
  </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 vie du jeton d’accès en secondes.
  </ResponseField>
</ResponseSchema>

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

| Statut | Description                |
| ------ | -------------------------- |
| 200    | Obtention réussie du token |
