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 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

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

4年前 评论

刚发就尸沉大海了 :joy:

4年前 评论

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

4年前 评论
giao哥

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

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

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

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!