【问题标题】:lifetime of the token at present time当前令牌的生命周期
【发布时间】:2020-03-28 05:02:54
【问题描述】:

我有一个带有以下负载的 JWT:

{
  "id": "394a71988caa6cc30601e43f5b6569d52cd7f6df",
  "jti": "394a71988caa6cc30601e43f5b6569d52cd7f6df",
  "iss": "issuer_id",
  "aud": "client_id",
  "sub": "user_id",
  "exp": 1483711650,
  "iat": 1483708050,
  "token_type": "bearer",
  "scope": "onescope twoscope"
}

iat : 在纪元时间发布

exp:在纪元时间内到期

我想检查当前令牌的生命周期。

有人可以建议这样做的最佳方法吗?

【问题讨论】:

  • 如果你的问题是正确的,那么只需从当前时间戳中减去 iat 值,这就是你的值。然后,您可以根据需要转换为日期。
  • 你从exp 中减去iat,然后你得到令牌有效的毫秒数(它的生命周期)。如果你想在几个小时内得到它,你只需乘以:(exp-iat)*1000*60*60 - 抱歉没有得到 “目前”

标签: java oauth-2.0 jwt


【解决方案1】:
  1. 获取当前纪元时间(这里的即时来自 java.time.Instant 包)
long currentTimeEpocSec = Instant.now().getEpochSecond()

然后用当前时间减去过期时间,它以秒为单位给出持续时间。

 long duration = expiresAt - currentTimeEpocSec;

在几秒钟内到达

long durationInMinutes = duration / 60;


【讨论】:

    猜你喜欢
    • 2019-06-17
    • 2015-01-08
    • 2017-07-25
    • 2011-05-02
    • 2020-11-06
    • 1970-01-01
    • 2016-05-15
    • 2018-10-26
    • 2021-11-11
    相关资源
    最近更新 更多