Node.js,AWS Cognito-在前端登录,在后端进行用户验证

时间:2019-01-21 10:08:30

标签: node.js amazon-cognito

我有一个包含前端Angular和后端Node.js的应用程序。我正在使用AWS Cognito在前端进行身份验证,但是,我需要知道是否在我的Node.js后端中对用户进行身份验证以允许某些路由。

现在我有两个解决方案:

  • 在每次路由调用时从前向后发送JWT令牌,以查看用户是否正确登录。但是我不知道它将如何影响我的后端性能,也不知道这是一个好习惯,以及有一种安全的方法可以做到这一点
  • 在Node.js(我也使用express)中,检查从哪个Web服务器调用路由。如果来自我的域,则意味着我可以允许该路线

应该怎么处理这个问题?

1 个答案:

答案 0 :(得分:0)

发送Cognito ID或访问令牌以及每个请求,然后自行解码。令牌已签名。 AWS提供了一种机制供您下载用户池的签名密钥。您将需要运行RSA来验证令牌的开销,但是费用应该可以忽略不计。

关于如何自己解码令牌的资源很多:

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html

https://github.com/awslabs/aws-support-tools/tree/master/Cognito/decode-verify-jwt