jwt vérifier si le jeton expiré

J'ai configuré le jeton comme ceci:

jwt.sign(
  {
    user: pick(user, ['_id', 'username'])
  },
  secret,
  {
    expiresIn: '2m'
  }
);

Mais quand je veux vérifier si le jeton est expiré, ce code ne fonctionne pas

function isAuthenticated() {
  const token = localStorage.getItem('token');
  const refreshToken = localStorage.getItem('refreshToken');
  try {
    decode(token);
    const { exp } = decode(refreshToken);
    if (exp < (new Date().getTime() + 1) / 1000) {
      return false;
    }
  } catch (err) {
    return false;
  }
  return true;
}

Le problème, c'est cette partie:

if (exp < (new Date().getTime() + 1) / 1000) {
  return false;
}

new Date().getTime() + 1) /1000 = 1531335468.113

exp = 1531334595

Parce que je ne sais pas quel format de temps utilise JWT...

Comment puis-je résoudre ce problème?

Merci!

  • imprimer la sortie de "new Date().getTime() + 1" et s'il vous plaît poster.
  • Comment êtes-vous décoder le jeton? Si vous utilisez une bibliothèque, ça va valider l'expiration du jeton automatiquement (par défaut). E. g. jsonwebtoken: github.com/auth0/...
  • Bon, le post est mis à jour
  • avec la bibliothèque jsonwebtoken
  • pourquoi ne pas utiliser jwt.vérifier, au lieu de jwt.décoder? jwt.décoder n'a même pas de vérifier que le jeton est correctement signé.
  • Oh, eh bien, je voulais savoir comment puis-je faire avec décoder xD
  • Je suis l'aide de jwt-décoder sur le navigateur et jsonwebtoken sur le serveur, la fonction isAuthenticated est à partir du client
  • Le code semble bien pour moi, comme le font les numéros. pouvez-vous être plus précis que "ne fonctionne pas"? aussi, JWT les magasins de temps en secondes depuis l'epoch. tools.ietf.org/html/rfc7519#page-6