【发布时间】:2019-03-03 10:10:46
【问题描述】:
我正在使用 JWT 来验证我的 API 服务器。 JWT 由外部身份验证服务器(在本例中为 keycloak)发出,典型的过期时间约为 5 分钟 (IIRC),然后前端应使用这些令牌向 API 发出请求。
在发出每个请求之前,我一直在尝试检查前端令牌的到期日期。如果令牌过期,我使用刷新令牌首先获取新的身份验证令牌,然后发出请求。
基本的工作流程是:
== 登录 == 1. 获取授权令牌 2. 存储到期(exp)日期(以 UTC 秒为单位)
== API 请求 ==
1.检查有效期(isExpired = expiryDate <= Math.floor(Date.now() / 1000))
2. 如果OK => 提出请求
3. 否则,刷新授权令牌并重做请求。
这样检查日期是不好的做法吗?确保请求成功的替代方法是什么?
我问是因为我在某些机器上看到过期检查总是返回false(它没有过期)的问题......
【问题讨论】:
标签: javascript ecmascript-6 jwt