寻找JWT Auth微服务的例子

我想要使​​用NodeJS,Mongo和JWT构buildauthentication/授权服务。 此服务将是一个微服务,它不仅在允许请求之前处理来自我的API网关的请求,而且还处理可能需要检查身份validation和angular色的其他服务的请求。 我假设所有其他服务将使用此身份validation服务来validationJWT以及angular色等。

希望这张图更好地解释我在找什么。 在这里输入图像说明

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

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

  • 创build一个微服务,用于生成jwt令牌的身份validation。

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

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

  • 在处理任何请求之前,您可以使用中间件来validation和解码jwt令牌。 现在,您可以将用户的信息设置为req对象easliy,并且可以轻松访问控制器中的用户angular色和其id。

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

  • 您可以调用身份validationAPI来validation和解码您的令牌,也可以在中间件的每个微服务中写入3到4行代码。

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

5步骤对authentication节点-JS

使用json Web令牌validationnodejs api

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

  • 您应该使用提供单点login解决scheme的openid connect标准,以相同的用户名和密码对多个应用程序进行身份validation。

  • 这里是一个openid连接操场来了解授权stream程。