Te sugerimos que pruebes esta solución en un ambiente controlado antes de enviarlo a producción, un saludo.
El estándar para JWT es incluir el vencimiento en la carga útil como “exp”. Si lo hace, el módulo de pasaporte-JWT lo respetará a menos que le diga explícitamente que no lo haga. Más fácil que implementarlo usted mismo.
EDITAR
¡Ahora con más código!
Normalmente uso el módulo npm jsonwebtoken
para crear/firmar mis tokens, que tiene una opción para configurar el vencimiento usando compensaciones de tiempo amigables en el elemento exp de la carga útil. Funciona así:
const jwt = require('jsonwebtoken');
// in your login route
router.post('/login', (req, res) =>
// do whatever you do to handle authentication, then issue the token:
const token = jwt.sign(req.user, 's00perS3kritCode', expiresIn: '30m' );
res.send( token );
);
Su estrategia JWT puede parecerse a lo que ya tiene, por lo que veo, y respetará automáticamente el tiempo de vencimiento de 30 minutos que configuré anteriormente (obviamente, puede configurar otros tiempos).
Si para ti ha sido de ayuda este post, sería de mucha ayuda si lo compartes con otros juniors y nos ayudes a extender esta información.