gpt4 book ai didi

php - 微服务架构中的 JWT 身份验证

转载 作者:搜寻专家 更新时间:2023-11-01 00:23:05 24 4
gpt4 key购买 nike

问题

问题是如何在微服务应用程序中创建身份验证服务并让其他服务检查该 token (JWT) 并检索用户?

可能的解决方案

我目前的想法是基于身份验证服务在用户通过身份验证后将 { token, user } 插入 Redis。所有其他服务都可以检查用户在 Redis 中的 Authorization: Bearer kdI8$dj$nD&... header 标记。

  • 如果 Redis 中存在 token,则用户通过身份验证。
  • 如果 Redis 中不存在 token,则用户未通过身份验证。

enter image description here

  1. 用户发送{ username, password }给授权服务
  2. Auth 服务验证凭据并检索 { token, user }
  3. Auth 服务将 {token, user} 插入 Redis
  4. 用户使用 { token }Service-1 发出请求
  5. Service-1 在 Redis 中查找 {token} 并检索 {token, user}
  6. Service-1 做它的事情并发回 { data }

这种方法是否存在任何可能的安全、逻辑或架构问题?

最佳答案

您不太清楚为什么要在 Redis 中存储 token 。安全 token 通常已经包含有关用户的信息(声明数据)。如果您需要有关未存储在 token 中的用户的信息,您应该能够通过对用户 ID 声明进行简单的数据库查询来查找该信息。

每个服务都可以通过检查其 digital signature 来验证传入的 token (为此只需要签名证书的公钥)、生命周期( token 何时过期)、受众( token 是给谁的)等。如果调用者提供有效 token ,则用户通过身份验证。

关于php - 微服务架构中的 JWT 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35639882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com