J'authentifie l'utilisateur en utilisant oAuth2 qui me donne un jeton d'expiration.
Le jeton d'expiration est pour 3600 (ce qui signifie une heure, selon la norme oauth)
Maintenant, lorsque le jeton expire, je souhaite utiliser le jeton d'actualisation pour obtenir un nouveau jeton d'accès.
Pour voir si le jeton a expiré, je pense à stocker la valeur de Date.now () actuelle et la valeur de Date.now () après une heure.
Le problème est que date.now ()
donne une valeur en long int ie
let date = Date.now() console.log(date)
Maintenant, je suis incapable de comprendre comment je peux comparer le temps ici. Quelqu'un peut-il m'aider.
4 Réponses :
utilisez new Date ()
à la place de Date.now ()
selon MDN p>
Si aucun argument n'est fourni, le constructeur crée un JavaScript Objet de date pour la date et l'heure actuelles selon les paramètres système pour le décalage du fuseau horaire.
alors les dates peuvent être directement comparées à l'aide des opérateurs >
et <
var time=new Date() var now=String(time.getHours())+":"+String(time.getMinutes())+":"+String(time.getSeconds()); This will give you the time in H:M:S. Format and this will be string.
Voici un exemple où comparer la date:
Date.prototype.addHours= function(h){ //simulation after 1 hour this.setHours(this.getHours()+h); return this; } var dateOld = new Date(); var dateNow = new Date().addHours(1);//test after 1 hour //output: false console.log(dateOld.getTime() === dateNow.getTime());//compare the date
J'espère que cela vous aidera
Puisque Date.now renvoie une valeur d'heure et qu'il y a toujours exactement 3,6e6 ms dans une heure ECMAScript, vous pouvez simplement ajouter 3,6e6 pour obtenir la valeur d'heure en une heure, par exemple
var now = Date.now(); var expires = now + 3.6e6; console.log(`expired yet? ${now > expires}`); console.log(`now : ${new Date(now).toLocaleString()}\nexpires: ${new Date(expires).toLocaleString()}`);