【发布时间】:2019-04-17 05:41:14
【问题描述】:
我的设置如下: 我有一个用 Vue.js 编写的前端,一个 Laravel 5.6 中的 API 和 AWS 上的基础设施。一切都在 docker 容器中运行。我们在前端和 API 之间有 4 个 API 容器和一个负载均衡器。身份验证适用于 Laravel Passport v5 和不记名令牌。
基本上一切正常,认证成功。
但是当我们部署新版本的 API 时,会出现以下情况: 2 个 API 实例具有版本 1,其他 2 个 API 实例具有版本 2。 这是有意的,因为我们希望在没有停机的情况下进行持续部署。一段时间后,2 个 v1 实例也被新的 v2 实例替换。所有实例都使用同一个数据库。
不幸的是,在此时间段内,身份验证不再起作用。似乎前端使用正确的新令牌向 API 发出了一些请求。负载均衡器将一些请求分配给 v1 实例,一些分配给 v2 实例。对 v2 实例的请求成功,对 v1 实例的请求不成功(401 未授权)。
我的问题:护照如何验证不记名令牌?为什么 v1 实例不能验证 v2 实例生成的令牌,反之亦然?即使它们都使用相同的数据库,我还能监督实例之间的差异并影响护照?
【问题讨论】:
标签: laravel amazon-web-services laravel-5.6 laravel-passport