Una sesión del inquilino de Auth0 con la política de sesiones no persistentes
(Opcional) Configure los tiempos de espera por inactividad y absoluto de la sesión
La experiencia Keep Me Signed In ofrece a los usuarios la opción de permanecer conectados en un dispositivo de confianza.
Si la casilla Keep Me Signed In está seleccionada, se establece una sesión persistente que se mantiene aunque se reinicie el navegador.
Si la casilla Keep Me Signed In no está seleccionada, se establece una sesión no persistente que caduca cuando se cierra el navegador.
Con sesiones no persistentes (efímeras) y Actions, el servidor gestiona esta lógica de forma segura sin exponer tokens de actualización al frontend.Con Custom Prompts, Auth0 CLI y sesiones efímeras mediante Actions, puede implementar un flujo de “Keep Me Signed In” moderno y seguro, sin tokens de actualización, sin soluciones alternativas de sesión del lado del cliente y con control total desde el backend.Esta solución es ideal para clientes que priorizan:
Gestión de sesiones del navegador con enfoque de confianza cero
1. Configure una página de Universal Login y añada una pantalla personalizada
Para recopilar la preferencia Keep Me Signed In del usuario, debe personalizar Universal Login configurando una plantilla de página y agregando una pantalla personalizada mediante Auth0 CLI.
Opcional: habilite la plantilla de página de Universal Login
Este paso solo es necesario si su inquilino no tiene configurada una plantilla de Universal Login.
Use el siguiente comando para crear o actualizar la plantilla de la página:
auth0 universal-login templates update
El editor de personalización abre la plantilla de la página de inicio de sesión. Puede usar cualquier estructura HTML que se adapte a su marca.Aquí tiene una plantilla de ejemplo mínima con un fondo y un widget integrado:
Abre la opción Partials en el editor de personalización:
Establece Prompt en: login-id (o login)
Establece Screen en: login-id (o login)
Establece Partial en: form-content-end
Agrega el siguiente fragmento de HTML:
<div class="ulp-field"> <input type="checkbox" name="ulp-remember-me" id="remember-me"> <label for="remember-me">Stay signed in on this device?</label></div>
Esto muestra la casilla de verificación debajo del formulario de inicio de sesión.
Cree un archivo llamado set-session-persistence.js para usarlo con Auth0 CLI y agregue el siguiente código:
exports.onExecutePostLogin = async (event, api) => { // Aplicar el cambio solo cuando el parámetro esté disponible if (event.request.body['ulp-remember-me']) { api.session.setCookieMode('persistent'); }};
Esta Action hace que la cookie de sesión se mantenga entre reinicios del navegador cuando el usuario marca la casilla. Para ampliar también la duración de la sesión en dispositivos de confianza, consulte Establecer la duración de la sesión para dispositivos de confianza más abajo.Use Auth0 CLI para crear o actualizar su Action de post-login con el archivo set-session-persistence.js:
Establezca la duración de la sesión para dispositivos de confianza
setCookieMode() solo controla cómo se envía la cookie de sesión al navegador. Una cookie persistente se mantiene incluso si se reinicia el navegador, mientras que una cookie no persistente (de sesión) se elimina al cerrar el navegador. No cambia el tiempo de expiración de la sesión en el backend. Si quiere que los dispositivos de confianza tengan una sesión de mayor duración, debe establecer explícitamente la expiración con api.session.setExpiresAt() o api.session.setIdleExpiresAt().
Para que los dispositivos de confianza tengan una sesión de mayor duración, use api.session.setExpiresAt() o api.session.setIdleExpiresAt() junto con setCookieMode():