有四个Laravel 7项目,项目A将使用项目B的一些路线。当然,项目B需要检查请求是否通过了身份验证。因此需要有一个特定身份验证服务器来处理所有4个项目的身份验证。
有没有这个模式的想法或实现?
发布于 2020-03-26 13:40:36
这是一个基于观点的问题,但您所描述的内容类似于您的项目的微服务或分布式架构。
如果您需要一次登录或一点授权所有这些项目的能力,那么一个OAuth服务听起来是正确的方式。
我目前正在跨12+项目工作,这些项目都是互连的、基于Laravel的微服务。我们使用一个Laravel OAuth服务来处理所有项目的登录。
要登录到项目A,您将被定向到login服务进行登录并被重定向回来。对于API或机器到机器的通信,我们仍然使用Login服务。为此,我们在Login服务中设置一个personal access客户端,然后为项目创建用户帐户。然后,我们为每个项目生成一个个人访问令牌。当项目A向项目B发出API请求时,项目B将获取身份验证令牌,并通过调用api/用户端点来验证它在Login服务中是否有效。
如果它们都不需要一个单一的登录,那么您可以不需要一个单一的登录,而只生成消费项目需要用来针对该项目进行身份验证的本地API令牌。
https://stackoverflow.com/questions/60861290
复制相似问题