寻找JWT Auth微服务示例

son*_*rin 6 authorization node.js jwt microservices

我想使用NodeJS,Mongo和JWT构建身份验证/授权服务.此服务将是一种微服务,它不仅可以在允许请求之前处理来自我的API网关的请求,还可以处理可能要检查身份验证和角色的其他服务.我假设所有其他服务都将使用此Auth服务来验证JWT以及角色等.

希望这个图能更好地解释我在寻找什么. 在此输入图像描述

任何人都可以指向一个资源,可以帮助我学习如何使用NodeJS做到这一点?

Vik*_*iya 10

如果您有一个客户端应用程序,则可以执行以下步骤

  • 制作一个用于生成jwt令牌的身份验证的微服务.

  • jwt包含其有效负载中的所有必要用户信息,即Role,UserId等.

  • 对于每个授权请求,jwt令牌将在Authorization标头中发送.

  • 在处理任何请求之前,您可以使用中间件验证和解码jwt令牌.现在,您可以在req object easliy中设置用户的信息,并可以轻松地在控制器中访问用户角色及其ID.

  • 如果令牌无效,那么你可以在中间件中抛出错误,它将提供未经授权的json响应.

  • 您可以调用身份验证API来验证和解码您的令牌,或者您可以在中间件的每个微服务中编写3到4行代码.

以下是jwt示例实现的一些链接,您应该根据上述步骤自定义这些示例代码.

5步骤对认证节点-JS

使用json web令牌验证nodejs api

如果您有多个客户端应用程序

  • 您应该使用提供单点登录解决方案的openid connect标准来使用相同的用户名和密码对多个应用程序进行身份验证.

  • 是一个openid连接操场,用于理解授权流程.

  • @gaurav5430 JWT 的解码不需要任何密钥。但如果你想*验证* jwt。它将需要公钥。身份验证服务器应该有一个检查 jwt 有效性的端点。在这种情况下,只需使用提供的密钥调用身份验证服务器就可以解决问题。它需要往返,但如果身份验证服务位于同一集群中,则应该基本上没问题。 (3认同)