node.js - 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;
解决方案
推荐阅读
- netlify - 如何向 Netlify 提供 Firebase 管理员凭据?
- ios - 点亮 SpriteKit SKEmitterNode
- linux - Linux 以 root 身份运行 bash 脚本,但在脚本中没有 chmod 权限
- arrays - 将矩阵存储在数组中 - MATLAB
- c# - 格式化int值时如何处理前导零
- laravel - Laravel 护照:安装错误:不创建 oauth 公钥和私钥
- c# - Blazor Server 如何跨多个选项卡和刷新保存数据
- docker - 如何调试导致在不同工作站上从相同代码库构建的层不同的原因?
- node.js - STDIN 上的 readFileSync 与 node.js 中的 readFile - 字符编码?
- c# - 使用 Windows 10 更新后,带有 Angular 应用程序的 ASP.NET Core 出现故障 (KB5003637)