我正在处理登录流程,无法确定在微服务架构中验证身份验证的最佳方法。
发生的情况是,jwt 在 httpOnly cookie 中发送到客户端,并在登录时保持。
在每个请求中,cookie 都会发送到受保护的 REST API(微服务(,以验证请求/jwt 的真实性。
两个可用选项:
- 我为cookie/jwt验证创建了通用中间件,并将其添加到每个微服务中
- 我将此服务嵌入到身份验证微服务中,并创建请求以通过 http(s( 以集中方式处理验证。
两种选择都有效,我想知道每种方法的优缺点是什么。
您是否对其中任何一个都有经验,因此建议其中一个而不是另一个?
我决定完全隔离身份验证服务。
调用 api 的代码对于需要处理所有身份验证相关问题的所有微服务都是通用的,但在执行更新时,身份验证 api 本身将自动更改所有微服务。
我更喜欢上面在更新时单独对每个微服务进行更改。
如果需要,无论出于何种原因,也可以对 api 进行版本控制。
http 调用形成非常小的延迟,但 http 调用又是轻量级的。
这同样适用于相互通信而不是身份验证的微服务。
它们将被上传到云中的 Kubernetes 集群,我假设这些调用会很快。
如果需要,仍然可以修改代码。