[已解决] 关于 jwt-auth refresh token 并发问题?

1.框架:laravel5.1,package:dingo/api、jwt-auth。
2.问题:
当app用旧的token请求接口换取新的token时,如果是并发过来几个请求(这里先假设是3个),那么会造成这三个请求换取的token都是不同的,只有最后一个token才是有效的。
理论上一般情况下单用户是不会出现这种情况,请问有什么好的解决方案可以避免出现这样的状况吗?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 5
liyu001989

刷新的逻辑是

  • decode token
  • 查看是否在黑名单中,如果在则抛出异常
  • 如果不在,把当前token放入黑名单,生成新的token

并发的话,应该会生成三个都可用的token,你确定只有最后一个可用?

可以手动解决一下并发的问题

6年前 评论

@liyu001989
非常感谢,我亲自试验了下。 开启了黑名单后,只会把旧的token放入黑名单,新的token全部都能用的!
以后应该自己多思考,非常感谢!

6年前 评论

@MarksGui 如果并发过来请求非常多,会不会导致崩溃?

6年前 评论

@Zippo 关键就看非常多是多少了,目前没有遇到崩溃的情况。 你可以对你的接口做一个压测

6年前 评论

请问是用什么方法解决的呢?

1年前 评论

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