Lumen5.6+jwt 验证,多台服务器时间差导致验证失败问题

框架版本:lumen5.6+tymon/jwt-auth-1.0.0-rc#

问题描述:#

生产部署了 4 台 php 服务器,存在 2s 左右时间差,获取前端登陆获取 token 后,立即使用 token 调用其他接口,因为负载到另外服务器上面存在时间差,导致 token 验证失败。因为 token 签发时间小于请求时间了。jwt.php 文件我配置了 leeway,但是在本地测试无效。

测试方法:#

生成 token 时间:2020-04-02 12:00:10
然后修改电脑时间:2020-04-02 12:00:00
这时使用 token 请求接口还是无法通过。
时间到了 2020-04-02 12:00:10 之后请求才可以

lumen5.6+jwt 验证多台服务器时间差导致验证失败问题

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 5

1、linux 服务器时间定时矫正 2、token 验证失败时 sleep 一下再去验证,很蠢 :joy: 3、最好的办法是 token 验证加个时间偏移,但是这个配置尝试无果

5年前 评论

刚发就尸沉大海了 :joy:

5年前 评论

leeway 只能向前偏移,不能向后偏移 :cry:

5年前 评论
giao哥

在生成 token 的时候设置下签发时间呗,比如默认减 20 秒钟呢

5年前 评论
XCPayne (楼主) 5年前
lufeijun1234 5年前
XCPayne (楼主) 5年前

其实我认为可以自己撸一个验证系统出来替代 jwt-auth,jwt-auth 感觉只适合小项目

5年前 评论