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

> Décrit comment utiliser la rotation des jetons d’actualisation reçus lors de l’autorisation.

# Utiliser la rotation des jetons d’actualisation

Pour utiliser la rotation des <Tooltip tip="Refresh Token : jeton utilisé pour obtenir un nouveau jeton d’accès sans obliger les utilisateurs à se connecter de nouveau." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=refresh+token">jetons d’actualisation</Tooltip>, vous utiliserez le SDK Auth0 Single Page App. Le Auth0 SPA SDK gère le stockage des jetons, la gestion des sessions et d’autres détails pour vous.

<div id="prerequisite">
  ## Prérequis
</div>

[Configurer la rotation des jetons d’actualisation](/docs/fr-ca/secure/tokens/refresh-tokens/configure-refresh-token-rotation) pour activer l’accès hors ligne et demander le scope offline\_access dans le SDK client.

<div id="enable-userefreshtokens">
  ## Activer useRefreshTokens
</div>

Conformément aux spécifications OAuth2, lorsqu’un navigateur demande un jeton d’actualisation au /<Tooltip tip="Token Endpoint : Point de terminaison sur l’Authorization Server utilisé pour demander des jetons par programmation." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=token+endpoint">point de terminaison de jeton</Tooltip>, Auth0 ne renverra un jeton d’actualisation que si <Tooltip tip="Token Endpoint : Point de terminaison sur l’Authorization Server utilisé pour demander des jetons par programmation." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Refresh+Token+Rotation">rotation des jetons d’actualisation</Tooltip> est activée pour ce client.

Utilisez l’option `useRefreshTokens` dans `createAuth0Client`, dont la valeur par défaut est `false`. Lorsque cette option est définie à `false`, si `getTokenSilently()` est appelé et qu’un nouveau <Tooltip tip="Access Token : Information d’autorisation, sous la forme d’une chaîne opaque ou d’un JWT, utilisée pour accéder à une API." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Access+Token">jeton d’accès</Tooltip> est requis, le SDK tente d’obtenir un nouveau jeton d’accès à l’aide d’un iframe caché et de `prompt=none`.

Si vous définissez cette option à `true`, la portée `offline_access` est automatiquement demandée lors de l’utilisation de `loginWithRedirect(), loginWithPopup()` et `getTokenSilently()`. Lorsque `getTokenSilently()` est appelé et que le jeton d’accès a expiré, le SDK tente de renouveler les ID and jetons d’accès en appelant le point de terminaison `/token` à l’aide du grant type `refresh_token`, ainsi que du jeton d’actualisation provenant du cache.

La re-authentication silencieuse se fait en envoyant le paramètre `prompt=none` dans la request d’authentication et en utilisant un iframe caché, à condition qu’il y ait une session utilisateur active sur l’<Tooltip tip="Authorization Server : Serveur centralisé qui contribue à définir les limites de l’accès d’un utilisateur. Par exemple, votre authorization server peut contrôler les données, les tâches et les fonctionnalités offertes à un utilisateur." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=authorization+server">authorization server</Tooltip>. Le SDK utilise la méthode par iframe si vous avez défini `useRefreshTokens` à `true`, mais qu’aucun jeton d’actualisation n’est disponible dans le cache. Cela permet aux utilisateurs de passer silencieusement aux jetons d’actualisation sans avoir à se connecter de nouveau.

Si l’échange échoue parce que `useRefreshTokens` est `true`, mais qu’aucun jeton d’actualisation ne se trouve dans le cache, le SDK revient à la méthode par iframe (qui peut aussi échouer si les third-party cookies sont bloqués).

<div id="token-storage">
  ## Stockage des jetons
</div>

Dans les SPA, les jetons d’identité et d’accès sont obtenus auprès du serveur d’autorisation et sont généralement mis en cache en mémoire. Le renouvellement des jetons (en raison de l’actualisation du navigateur, des politiques d’éviction du cache mémoire ou de l’expiration) est pris en charge par le SDK.

<div id="example">
  ## Exemple
</div>

L’exemple suivant montre comment configurer le SDK pour utiliser à la fois le stockage local et les jetons d’actualisation :

```javascript lines theme={null}
const auth0 = await createAuth0Client({
    domain: '<your Auth0 domain>',
    client_id: '<your Auth0 client ID>',
    cacheLocation: 'localstorage',
    useRefreshTokens: true
    });
    
    // La connexion demandera automatiquement la portée offline_access
    // et stockera le jeton d'actualisation résultant
    auth0.loginWithRedirect();
    
    // L'actualisation silencieuse du jeton d'accès utilisera le point de terminaison de jeton /token
    // avec le grant 'refresh_token' et le jeton d'actualisation du cache
    await auth0.getTokenSilently();
```

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

* [Configurer la rotation des jetons d’actualisation](/docs/fr-ca/secure/tokens/refresh-tokens/configure-refresh-token-rotation)
* [Désactiver la rotation des jetons d’actualisation](/docs/fr-ca/secure/tokens/refresh-tokens/disable-refresh-token-rotation)
* [Pratiques exemplaires pour les jetons](/docs/fr-ca/secure/tokens/token-best-practices)
