1

我从 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 天,所以请解释如果有人知道,这对我来说也是如此。

任何帮助,将不胜感激

谢谢!

4

3 回答 3

3

我怀疑他们给你的令牌在一周中的某一天午夜到期,而不是从现在起 60*24*3600 = 5,184,000 秒。要将此到期延迟转换为特定日期时间,请执行以下操作:

var now = new Date();
expiryDate = new Date(now.getTime() + expires_in*1000);

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

于 2016-08-06T21:08:53.210 回答
0

我是这样解决的:

export const expiryToISODate = (expiresIn: number): string => {
  const now = new Date();
  now.setSeconds(now.getSeconds() + expiresIn);
  return now.toISOString();
};
于 2022-02-15T04:42:31.390 回答
0

我也有同样的问题,更多的是在另一个服务中。看看我做了什么,当我生成一个令牌时,我在时间戳中设置了它的过期时间并将它保存在一个 cookie 和秒中,让我们想象你的令牌在一天后过期,所以你必须保存时间戳在创建令牌的同时生成令牌的持续时间,在我们的例子中是以秒为单位的一天 '1 以秒为单位的天 = 86400' 我不检查令牌以了解过期时间,因为我将需要使用节点,而不是我使用设置令牌到期时间加上有效负载链接时间戳的秒数。我计算保存在 cookie 中的时间戳和秒数,生成一个新的本地时间戳,然后减去。

查看在 allaksr 上工作的演示

于 2019-09-09T06:50:02.513 回答