寻找JWT Auth微服务示例

时间:2017-10-30 01:54:51

标签: node.js authorization jwt microservices

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

希望这个图能更好地解释我在寻找什么。 enter image description here

有人能指出我可以帮助我学习如何使用NodeJS进行此操作的资源吗?

1 个答案:

答案 0 :(得分:7)

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

  • 为生成jwt令牌的身份验证创建一个微服务。

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

  • jwt令牌将在每个授权请求的授权标题中发送。

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

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

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

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

5-steps-to-authenticating-node-js

authenticate a nodejs api with json web tokens

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

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

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