我想为在laravel上运行的一系列微服务实现api网关。网关前面有一个角度客户端,用户必须在其中使用用户名和密码登录。这个想法是用户将带有凭据的请求发送到网关,网关将其转发到身份验证服务。如果数据正确,则会发出令牌,该令牌将包含在每个其他请求中。
我想我将用kong和oauth2插件实现网关。我已经看过他们的文档https://docs.konghq.com/hub/kong-inc/oauth2/#resource-owner-password-credentials,但我不太了解流程。
在第一个请求上,角度客户端是否必须直接与身份验证服务进行通信?如果是这样,验证服务是否需要自己的网址?我认为,如果所有请求都通过网关,那会更有意义,不是吗?
谢谢!
答案 0 :(得分:0)
据我了解,您的角度应用程序可以将用户名:密码发送到kong网关,并将请求转发给您的身份验证服务。您可以验证用户是否在您的身份验证服务中合法。
1)如果合法,则向kong的oauth2插件提供的/ oauth2 / token端点发出请求。 Kong将为您的身份验证服务返回一个access_token,您可以将其返回给用户
2)如果不合法,则抛出错误。
Angular客户端是否必须在第一个请求上直接与身份验证服务进行通信?
仅当您的身份验证服务是第三方服务时,您才能这样做。