Saltar al contenido

jwt verificar si el token expiró

Intenta entender el código de forma correcta previamente a adaptarlo a tu proyecto y si ttienes algo que aportar puedes compartirlo con nosotros.

Solución:

Esta es la respuesta si alguien quiere saber

if (Date.now() >= exp * 1000) 
  return false;

Debe usar jwt.verify, comprobará si el token ha caducado. jwt.decode no debe usarse si la fuente no es confiable, ya que no verifica si el token es válido.

verify en sí mismo devuelve un error si ha caducado. Más seguro como dijo @Gabriel.

const jwt = require('jsonwebtoken')

router.use((req, res, next) => 
  const token = yourJwtService.getToken(req) // Get your token from the request
  jwt.verify(token, req.app.get('your-secret'), function(err, decoded) 
    if (err) throw new Error(err) // Manage different errors here (Expired, untrusted...)
    req.auth = decoded // If no error, token info is returned in 'decoded'
    next()
  );
)

Y lo mismo escrito en async/await sintaxis:

const jwt = require('jsonwebtoken')
const jwtVerifyAsync = util.promisify(jwt.verify);

router.use(async (req, res, next) => 
  const token = yourJwtService.getToken(req) // Get your token from the request
  try 
    req.auth = await jwtVerifyAsync(token, req.app.get('your-secret')) // If no error, token info is returned
   catch (err) 
    throw new Error(err) // Manage different errors here (Expired, untrusted...)
  
  next()
);

Finalizando este artículo puedes encontrar las acotaciones de otros programadores, tú además tienes la libertad de mostrar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *