我想为在laravel上运行的一堆微服务实现一个api网关。在网关前面有一个angular客户端,用户必须使用用户名和密码登录。其思想是,用户将带有凭据的请求发送到网关,网关将其转发到身份验证服务。如果数据正确,将发出令牌,该令牌将包含在每一个后续请求中。
我想我会用kong和oauth2插件来实现网关。我已经看过他们的文档https://docs.konghq.com/hub/kong-inc/oauth2/#resource-owner-password-credentials了,但我并不真正理解他们的流程。
在第一次请求时,angular客户端是否必须直接与身份验证服务通信?如果是这样,身份验证服务是否需要自己的url?我认为如果所有的请求都通过网关会更有意义,不是吗?
谢谢!
发布于 2020-05-09 05:46:29
据我所知,您的angular应用程序可以将username:password发送到kong网关,这将代理请求到您的身份验证服务。您可以在您的身份验证服务中验证该用户是否合法。
1)如果合法,则向孔的oauth2插件提供的/oauth2/token端点发出请求。孔令会将你的身份验证服务返回一个你可以返回给用户的access_token
2)如果不合法,则抛出错误。
在第一次请求时,angular客户端是否必须直接与身份验证服务通信?
只有当你的身份验证服务是第三方服务时,你才能这样做。
https://stackoverflow.com/questions/59479718
复制相似问题