Laravel Passport:根据另一个微服务颁发的访问令牌对 api 请求进行身份验证

Laravel Passport: Authenticate api requests based on access token issued by another microservice

我有 3 项服务。 app.mydomain.com、accounts.mydomain.com 和 api.mydomain.com。 accounts.mydomain.com 使用护照验证并颁发访问令牌。我的问题是如何使用帐户服务颁发的访问令牌来允许访问 api 服务的资源。

你有两种方法:

1) 在 account.mydomain.com 服务器上创建一个内省端点,供 api.mydomain.com 调用以检查访问令牌。

通过令牌内省端点,资源服务器 (api.mydomain.com) 可以检查访问令牌的有效性,并找出其他信息,例如与令牌关联的用户和范围。

有关令牌内省的更多信息,请参阅 https://oauth.net/2/token-introspection/

这是更好但更难的解决方案,因为您需要在 api.mydomain.com 服务中编写中间件或保护验证器以从 account.mydomain.com

调用内省端点

2) 在您的所有项目中共享 oauth-private.keyoauth-public.key

这是更简单的方法,因为您唯一需要做的就是从 storage 目录

复制并粘贴这两个文件