Passer au contenu principal
Les jetons d’actualisation sont utilisés pour demander un nouveau jeton d’accès et/ou un nouveau jeton d’ID pour un utilisateur sans qu’il soit nécessaire de se réauthentifier. En général, vous devez demander un nouveau jeton d’accès avant l’expiration du précédent (pour éviter toute interruption de service), mais pas à chaque appel à une API, car les échanges de jetons sont soumis à notre Politique de limite anti-attaques. Vous pouvez également utiliser un jeton d’actualisation pour demander un nouveau jeton d’ID pour un utilisateur, et vous devriez le faire si vous devez actualiser les demandes dans le jeton d’ID.

Appeler l’API

Pour échanger le jeton d’actualisation que vous avez reçu lors de l’authentification contre un nouveau jeton d’accès, appelez l’Authentication API Auth0 Obtenir un point de terminaison de jeton dans l’Authentication API. Pour en savoir plus sur les méthodes d’authentification disponibles pour l’Authentication API, consultez Méthodes d’authentification.

Utiliser l’authentification Basic

curl --request POST \
  --url 'https://{yourDomain}/oauth/token' \
  --header 'authorization: Basic {yourApplicationCredentials}' \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data grant_type=refresh_token \
  --data 'client_id={yourClientId}' \
  --data 'refresh_token={yourRefreshToken}'

Utiliser l’authentification Post

curl --request POST \
  --url 'https://{yourDomain}/oauth/token' \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data grant_type=refresh_token \
  --data 'client_id={yourClientId}' \
  --data 'client_secret={yourClientSecret}' \
  --data 'refresh_token={yourRefreshToken}'

Définition des paramètres

ParamètreDescription
grant_typeType d’autorisation à exécuter.
client_idID client de l’application.
client_secret(Facultatif) Secret client de l’application. Uniquement requis pour les applications confidentielles utilisant la méthode d’authentification par jeton Post.
refresh_tokenJeton d’actualisation à échanger.
La réponse comprendra un nouveau jeton d’accès, son type, sa durée de vie (en secondes) et les permissions autorisées. Si la permission du jeton initial incluait openid, alors un nouveau jeton d’ID sera également dans la réponse.
{
      "access_token": "eyJ...MoQ",
      "expires_in": 86400,
      "scope": "openid offline_access",
      "id_token": "eyJ...0NE",
      "token_type": "Bearer"
    }

Contourner la MFA

Si Authentification multifacteur (MFA) est activée et que les fonctions de jeton d’actualisation échouent, vous pouvez utiliser la solution de contournement suivante :
exports.onExecutePostLogin = async (event, api) => {
  // This action will allow you to bypass the MFA logic for the refresh token exchange flow.

  if (event.transaction.protocol === "oauth2-refresh-token") {
    return;
  }

  //  Add your MFA logic
  //  For example: api.multifactor.enable("any");
};
Vous pouvez personnaliser l’exemple de code lorsque des logiques distinctes doivent être exécutées ou contournées en fonction du flux ou protocole en cours.

En savoir plus

I