[已解决] 关于 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,你确定只有最后一个可用?

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

8年前 评论

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

8年前 评论

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

7年前 评论

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

7年前 评论

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

2年前 评论