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

> Describe cómo usar la rotación del Token de actualización que recibió durante la autorización.

# Usar la rotación de Token de actualización

Para usar la rotación de <Tooltip tip="Token de actualización: token que se usa para obtener un Token de acceso renovado sin obligar a los usuarios a volver a iniciar sesión." cta="Ver glosario" href="/es/docs/glossary?term=refresh+token">token de actualización</Tooltip>, usará el SDK de Auth0 para aplicaciones de una sola página. El SDK de Auth0 para SPA se encarga del almacenamiento de tokens, la administración de sesiones y de otros detalles.

<div id="prerequisite">
  ## Requisito previo
</div>

[Configura la rotación del token de actualización](/es/docs/secure/tokens/refresh-tokens/configure-refresh-token-rotation) para habilitar el acceso sin conexión y solicitar el scope `offline_access` en el SDK del cliente.

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

De acuerdo con las especificaciones de OAuth2, cuando un navegador solicita un token de actualización al /<Tooltip tip="Endpoint de token: endpoint del Servidor de autorización que se usa para solicitar tokens mediante programación." cta="Ver glosario" href="/es/docs/glossary?term=token+endpoint">endpoint de token</Tooltip>, Auth0 solo devolverá un token de actualización si la <Tooltip tip="Endpoint de token: endpoint del Servidor de autorización que se usa para solicitar tokens mediante programación." cta="Ver glosario" href="/es/docs/glossary?term=Refresh+Token+Rotation">rotación del token de actualización</Tooltip> está habilitada para ese cliente.

Use la opción `useRefreshTokens` en `createAuth0Client`, cuyo valor predeterminado es `false`. Con esta opción establecida en `false`, cuando se invoca `getTokenSilently()` y se necesita un nuevo <Tooltip tip="Token de acceso: credencial de autorización, en forma de una cadena opaca o JWT, que se usa para acceder a una API." cta="Ver glosario" href="/es/docs/glossary?term=Access+Token">Token de acceso</Tooltip>, el SDK intenta obtenerlo mediante un iframe oculto y `prompt=none`.

Si establece esta opción en `true`, el scope `offline_access` se solicita automáticamente al usar `loginWithRedirect(), loginWithPopup()` y `getTokenSilently()`. Cuando se invoca `getTokenSilently()` y el Token de acceso ha expirado, el SDK intenta renovar los tokens de ID y de acceso llamando al endpoint `/token` con el tipo de concesión `refresh_token`, junto con el Token de actualización almacenado en la caché.

La reautenticación silenciosa se logra enviando un parámetro `prompt=none` en la solicitud de autenticación y usando un iframe oculto, siempre que haya una sesión de usuario activa en el <Tooltip tip="Servidor de autorización: servidor centralizado que contribuye a definir los límites del acceso de un usuario. Por ejemplo, su servidor de autorización puede controlar los datos, las tareas y las funcionalidades disponibles para un usuario." cta="Ver glosario" href="/es/docs/glossary?term=authorization+server">servidor de autorización</Tooltip>. El SDK usa el método de iframe si ha establecido `useRefreshTokens` en `true` pero no hay ningún Token de actualización disponible en la caché. Esto permite que los usuarios migren silenciosamente al uso de tokens de actualización sin tener que volver a iniciar sesión.

Si el intercambio falla porque `useRefreshTokens` es `true` pero no hay un Token de actualización en la caché, se recurre al método de iframe (que también podría fallar si las cookies de terceros están bloqueadas).

<div id="token-storage">
  ## Almacenamiento de tokens
</div>

En las SPA, los tokens de ID y de acceso se obtienen del Servidor de autorización y, por lo general, se almacenan en caché en memoria. El SDK se encarga de renovar los tokens (por ejemplo, cuando se actualiza el navegador, se alcanzan los límites de expulsión de la caché en memoria o estos vencen).

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

El siguiente ejemplo muestra cómo configurar el SDK para usar tanto el almacenamiento local como los tokens de actualización:

```javascript lines theme={null}
const auth0 = await createAuth0Client({
    domain: '<your Auth0 domain>',
    client_id: '<your Auth0 client ID>',
    cacheLocation: 'localstorage',
    useRefreshTokens: true
    });
    
    // Al iniciar sesión se solicitará automáticamente el scope offline_access
    // y se almacenará el token de actualización resultante
    auth0.loginWithRedirect();
    
    // La actualización silenciosa del token de acceso usará el endpoint /token
    // con el grant 'refresh_token' y el token de actualización de la caché
    await auth0.getTokenSilently();
```

<div id="learn-more">
  ## Más información
</div>

* [Configurar la rotación del Token de actualización](/es/docs/secure/tokens/refresh-tokens/configure-refresh-token-rotation)
* [Deshabilitar la rotación del Token de actualización](/es/docs/secure/tokens/refresh-tokens/disable-refresh-token-rotation)
* [Prácticas recomendadas para tokens](/es/docs/secure/tokens/token-best-practices)
