如何通过javascript中的expiry_time来检查令牌的到期

How to check expiry of token via expiry_time coming with that in javascript

本文关键字:令牌 检查 time javascript 何通过 中的 expiry      更新时间:2023-09-26

我从Flipkart API获得一个访问令牌,并将其到期时间提供给我。但我不知道他们给出的到期时间是多少,他们给出的是某种以秒为单位的时间戳,当我把这些秒转换成分钟时,就有56天了。当我阅读文档时,他们说代币在60天后过期。但当我使用API时,它每次都会在expiry_time字段中给我不同的时间戳。例如,它将给出的第一个时间:-

"access_token" : "0c87d3c8-824d-446b-bqf8-c14e7d49f06",
"expires_in" : 4773358

一段时间后,我再次击中它,然后它返回:-

"access_token" : "0c87d3c8-824d-446b-bqf8-c14e7d49f06",
"expires_in" : 4840646

我只想通过它的到期时间来验证这个令牌,即如果令牌到期,我需要再次点击并获得新的令牌。我如何检查令牌是否过期。

我如何使用java脚本或Meteor框架来实现这一点。或者我也想知道他们给我的时间戳是哪种格式,我想是以秒为单位还是其他格式。正如他们所说,代币在60天后到期,但当我转换它时,它只显示56天,而不是60天,所以如果有人知道的话,请为我解释一下。

如有任何帮助,将不胜感激

谢谢!

我怀疑他们给你的代币在一周中的某一天午夜到期,而不是60243600=5184000秒。要将此到期延迟转换为特定的日期时间,请执行以下操作:

const expiryDate = Date.now() + expires_in * 1000

您必须乘以1000,因为Date.now()返回毫秒。

我是这样解决的:

export const expiryToISODate = (expiresIn: number): string => {
  const now = new Date();
  now.setSeconds(now.getSeconds() + expiresIn);
  return now.toISOString();
};