如何处理 JWT.exp 时间? [复制]

Posted

技术标签:

【中文标题】如何处理 JWT.exp 时间? [复制]【英文标题】:How to handle JWT.exp time? [duplicate] 【发布时间】:2019-01-27 04:24:55 【问题描述】:
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

我有一个价值为1534820211 的令牌,当我尝试使用toISOString() 转换它时,它给了我一年1970-01-18T18:20:20.211Z

但是当我在jwt.io 解码相同的令牌,并将鼠标悬停在exp 上时,它显示2018-08-21....,这是巨大的差异。我还尝试将jwtDecode(token).exp 传递给moment 并使用格式,仍然在1970xxxx 中返回我的日期时间。

moment(jwtDecode(token).exp).format();

【问题讨论】:

【参考方案1】:

您拥有的值是 距纪元的秒数​​

javascript Date 构造函数(以及 moment 函数)接受以 从纪元开始的毫秒为单位的值。将数字乘以 1000,您的代码应该可以正常工作:

var exp = 1534820211 * 1000;
console.log(new Date(exp));

【讨论】:

以上是关于如何处理 JWT.exp 时间? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

BlockingQueue的InterruptedException如何处理? [复制]

如何处理访问写入冲突错误? [复制]

表单关闭后如何处理非托管资源? [复制]

如何处理返回不同格式日期时间的 API 的 LocalDateTime? [复制]

bash 如何处理嵌套引号? [复制]

如何处理java中的方法超时? [复制]