Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to handle JWT.exp time? [duplicate]

console.log('DEBUG::+jwtDecode(token).exp', +jwtDecode(token).exp); //1534820211

console.log('DEBUG::try', new Date(+jwtDecode(token).exp).toISOString());
//DEBUG::try 1970-01-18T18:20:20.211Z

I'm having a token with value 1534820211 and when I try to convert it using toISOString() it gives me year 1970-01-18T18:20:20.211Z.

But when I decode the same token at jwt.io, and mouse hover over exp, it shows 2018-08-21.... which is huge difference. I have also tried to pass jwtDecode(token).exp into moment and using format, still return me datetime in 1970xxxx.

moment(jwtDecode(token).exp).format();
like image 985
Isaac Avatar asked Aug 21 '18 02:08

Isaac


1 Answers

The value you have is seconds from epoch.

JavaScript Date constructor (and moment function too) accepts value in milliseconds from epoch. Multiply the number by 1000, and your code should work fine:

var exp = 1534820211 * 1000;
console.log(new Date(exp));
like image 133
31piy Avatar answered Oct 26 '22 23:10

31piy