首页 > 解决方案 > cognitoidentityserviceprovider.getUser() 是如何工作的?

问题描述

我的问题是关于 AWS Cognito SDK。我的前端使用 amplify /cognito 对用户进行身份验证,并将标头中的令牌发送到我的后端。

我已成功使用 cognitoidentityserviceprovider.getUser() 在我的后端 nodejs 应用程序上获取用户属性,但没有任何权限!

我在我的 API 上使用只有 S3 和 SES 权限的受限用户,但我很惊讶,getUser() 调用只是在没有任何授权的情况下解码 JWT 令牌?如果是这样,任何人都可以使用 aws-sdk 从我的 jwt 令牌中解码所有用户属性吗?

我还在后端完全删除了 API 密钥,只是为了看看它仍然能够成功获取用户对象。这不是安全风险吗?

代码:

   const aws = require('aws-sdk');
   var provider =  new aws.CognitoIdentityServiceProvider();
   const user = await provider.getUser( {AccessToken: jwtToken}).promise();
   return user;

标签: node.jsamazon-web-servicesamazon-cognito

解决方案


推荐阅读