gpt4 book ai didi

jwt - NestJS - 使用微服务进行 JWT 身份验证

转载 作者:行者123 更新时间:2023-12-05 02:51:49 26 4
gpt4 key购买 nike

我目前正在使用 NestJS 的微服务和身份验证,但我遇到了一个我没有明确解决方案的问题。

假设我有一个 API 网关来平衡对多个微服务的调用。我想启用身份验证(通过 JWT token )并检索我可能在任何微服务上调用的每个进程的用户信息。

我面临的问题是我不知道在哪里解码 token 。

  • API 网关是否应该通过向微服务附加用户数据来解码 token 并将 HTTP 请求代理到微服务?
  • 终端微服务应该解码 token 而不是网关吗?

我对实现这两个方法很有信心,我只是不知道它们是否是好的做法,或者是否有更好的解决方案我还没有想到。

最佳答案

执行此操作的最佳方法是使用下面的流程。

  1. 请求从客户端转到 API 网关。
  2. API 网关将调用 auth 微服务来解码 token 。
  3. Auth 微服务将验证此 token 并对其进行解码。然后调用db获取用户数据,然后将用户数据发送到API网关。
  4. 现在 API 网关有用户数据。然后将注入(inject) header ,如 x-user-idx-user-namex-user-email。并调用微服务-x。

Lets say microservice-x will create and record in table then call microservice-z to send email.

  1. 微服务-x 将收到在表中为用户 ID x-user-id 创建记录的请求。然后调用 microservice-z 通过 x-user-email 发送邮件。

enter image description here

关于jwt - NestJS - 使用微服务进行 JWT 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63003165/

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