如果另一个已经启动,如何防止两个无状态API启动一个动作

时间:2019-01-21 13:18:28

标签: php laravel api oauth-2.0

因此,我们有一个接受访问令牌的身份验证服务器,如果令牌无效,它可以接受刷新令牌。 Auth服务器和Application服务器都使用Laravel作为框架,Apache作为服务器。

我的前端应用程序同时发送大约 20个请求,这导致几个API(几乎总是)一起到达代码流中的特定点。

现在,在检查访问令牌是否有效之后,API服务器尝试将刷新令牌发送到auth服务器,如果有效,我们将收到JSON响应,但是,如果无效(或使用),我们得到一个例外。

由于2个API(至少2个)正好达到同一点(其中包括数据库检查和更多步骤)同时,因此它们两者都试图从刷新令牌中获取访问令牌。显然,其中的1个总是会失败,而且失败的API总是会首先返回,因此迫使我在前端注销用户。

有没有一种方法可以确保只有1个API尝试从刷新令牌中检索新的访问令牌。

我当时正在考虑对文件使用排他性锁之类的方法,但是不确定是否正确!

任何线索/想法/批评都会受到赞赏。

0 个答案:

没有答案