jwt check if token expired jwt check if token expired express express

jwt check if token expired


This is the answer if someone want to know

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


You should use jwt.verify it will check if the token is expired. jwt.decode should not be used if the source is not trusted as it doesn't check if the token is valid.


verify itself returns an error if expired. Safer as @Gabriel said.

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()  });})

And same written in async/await syntax:

const jwt = require('jsonwebtoken')const util = require('util');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()});