Saltar al contenido principal
Para usar la rotación de , 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.

Requisito previo

Configura la rotación del token de actualización para habilitar el acceso sin conexión y solicitar el scope offline_access en el SDK del cliente.

Habilitar useRefreshTokens

De acuerdo con las especificaciones de OAuth2, cuando un navegador solicita un token de actualización al /, Auth0 solo devolverá un token de actualización si la 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 , 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 . 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).

Almacenamiento de tokens

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

Ejemplo

El siguiente ejemplo muestra cómo configurar el SDK para usar tanto el almacenamiento local como los tokens de actualización:
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();

Más información