> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Utilisation de la rotation des jetons d’actualisation

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

Pour utiliser la rotation des jetons d’actualisation, vous utiliserez la trousse SDK Auth0 pour les applications à page unique (SPA). La trousse SDK Auth0 pour les applications à page unique gère pour vous le stockage des jetons, la gestion des séances et d’autres détails.

## Conditions préalables

[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 demandez la permission de l’accès hors ligne dans la trousse SDK du client.

## Activer useRefreshTokens

En conformité avec les spécifications OAuth2, lorsqu’un navigateur demande un jeton d’actualisation à partir du point de terminaison /token, Auth0 ne renverra un jeton d’actualisation que si la rotation des jetons d’actualisation est activée pour ce client.

Utilisez l’option `useRefreshTokens` sur `createAuth0Client` dont la valeur par défaut est `false`. Si cette option est réglée sur `false`, lorsque `getTokenSilently()` est invoquée et qu’un nouveau jeton d’accès est requis, la trousse SDK tente d’acquérir un nouveau jeton d’accès à l’aide d’un iframe dissimulé et d’un `prompt=none`.

Si vous réglez cette option sur `true`, la permission `offline_access` est automatiquement demandée lors de l’utilisation de `loginWithRedirect(), loginWithPopup()` et `getTokenSilently()`. Lorsque `getTokenSilently()` est invoqué et que le jeton d’accès a expiré, la trousse SDK essaie de renouveler les jetons d’accès et d’ID en appelant le point de terminaison `/token` à l’aide du type d’autorisation `refresh_token` ainsi que du jeton d’actualisation du cache.

La réauthentification silencieuse est réalisée en envoyant un paramètre `prompt=none` lors de la demande d’authentification et en utilisant un iframe dissimulé, à condition qu’il y ait une session utilisateur active sur le serveur d’autorisation. La trousse SDK utilise la méthode iframe si vous avez défini `useRefreshTokens` sur `true` mais qu’aucun jeton d’actualisation n’est disponible dans le cache. Cela permet aux utilisateurs de migrer silencieusement vers l’utilisation de jetons d’actualisation sans les obliger à se reconnecter.

Si l’échange échoue parce que `useRefreshTokens` est `true`, mais qu’il n’y a pas de jeton d’actualisation dans le cache, on revient à la méthode iframe (qui peut également échouer si les témoins tiers sont bloqués).

## Stockage des jetons

Avec les SPA (applications à page unique), les identifiants et les jetons d’accès sont obtenus auprès du serveur d’autorisation et sont généralement mis en cache dans la mémoire. Le renouvellement des jetons (en raison de l’actualisation du navigateur, des budgets d’éviction du cache mémoire ou de l’expiration) est géré par la trousse SDK.

## Exemple

L’exemple suivant montre comment configurer la trousse SDK pour qu’elle utilise à 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
    });
    
    // Logging-in will automatically request the offline_access scope
    // and store the resulting refresh token
    auth0.loginWithRedirect();
    
    // Silently refreshing the access token will use the /token endpoint
    // with ‘refresh_token’ grant and the refresh token from the cache
    await auth0.getTokenSilently();
```

## En savoir plus

* [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)
* [Meilleures pratiques concernant les jetons](/docs/fr-ca/secure/tokens/token-best-practices)
