Me gustaría implementar la autenticación basada en JWT en nuestra nueva API REST. Pero dado que la caducidad se establece en el token, ¿es posible prolongarlo automáticamente? No quiero que los usuarios necesiten iniciar sesión después de cada X minutos si estaban usando activamente la aplicación en ese período. Eso sería un gran error de UX.
Pero prolongar la caducidad crea un nuevo token (y el antiguo aún es válido hasta que caduque). Y generar una nueva ficha después de cada solicitud me parece una tontería. Suena como un problema de seguridad cuando más de un token es válido al mismo tiempo. Por supuesto, podría invalidar el viejo usado usando una lista negra, pero necesitaría almacenar los tokens. Y uno de los beneficios de JWT es que no hay almacenamiento.
Encontré cómo Auth0 lo resolvió. Utilizan no solo el token JWT sino también un token de actualización: https://docs.auth0.com/refresh-token
Pero, de nuevo, para implementar esto (sin Auth0) necesitaría almacenar tokens de actualización y mantener su vencimiento. ¿Cuál es el beneficio real entonces? ¿Por qué no tener solo un token (no JWT) y mantener la caducidad en el servidor?
¿Hay otras opciones? ¿Usar JWT no es adecuado para este escenario?