gpt4 book ai didi

javascript - 检查前端每个请求的 token 过期

转载 作者:行者123 更新时间:2023-11-30 20:09:36 24 4
gpt4 key购买 nike

我正在使用 JWT 来验证我的 API 服务器。 JWT 由外部身份验证服务器(在本例中为 keycloak)发布,典型的到期时间约为 5 分钟 (IIRC),然后前端应使用这些 token 向 API 发出请求。

在发出每个请求之前,我一直在尝试检查前端 token 的到期日期。如果 token 已过期,我会使用刷新 token 首先获取新的身份验证 token ,然后发出请求。

基本工作流程是:

== 登录 ==1.获取授权 token 2. 存储过期 (exp) 日期(以 UTC 秒为单位)

== API请求==1.检查到期日期(isExpired = expiryDate <= Math.floor(Date.now() / 1000))2. 如果OK => 发出请求3. 否则,刷新授权 token 并重做请求。

这样检查日期是不好的做法吗?确保请求成功的替代方法是什么?

我问是因为我在某些机器上看到过期检查总是返回 false 的问题(它没有过期)...

最佳答案

依赖前端检查的问题是您无法控制用户计算机上的本地时间,这可能是错误的。

更稳健的方法可能是像往常一样发出请求,如果 token 已过期,则从服务器返回一条错误消息。在每次请求时,如果从服务器收到错误消息,则客户端可以触发刷新过程,然后使用新 token 重新提交原始请求。

关于javascript - 检查前端每个请求的 token 过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52537929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com