javascript - 如何发出经过身份验证的 Cognito 请求
问题描述
我可以describeIdentityPool
在启用“启用对未经身份验证的身份的访问”的情况下成功运行 Cognito 身份池的命令:
var AWS = require("aws-sdk");
let cognitoidentity = new AWS.CognitoIdentity();
var params = {IdentityPoolId: "myIdentityPoolID"};
cognitoidentity.describeIdentityPool(params, function(err, data) {
if (err) {
console.log(err, err.stack);
}
else {
console.log( "...getCredentials.describeIdentityPool.data:", data);
}
});
但是,如果我禁用“启用对未经身份验证的身份的访问”复选框,我会收到错误消息:
NotAuthorizedException: Unauthenticated access is not supported for this identity pool.
有没有办法授权我向 Cognito 身份池发出的请求以避免此错误?
解决方案
这是完全可以预料的。AWS 上的几乎所有 API 都需要访问密钥 ID 和秘密访问密钥。describeIdentityPool
API 就是其中之一。
如果您为未经身份验证的用户启用访问权限,他们会收到允许他们执行该操作的临时凭据。默认允许的操作之一是cognito-identity:*
. 这是允许未经身份验证的用户调用此 API 的方法。您将能够在分配给“未经身份验证的身份”设置的角色中找到它。
当您禁用未经身份验证的实体时,它们将不再接收临时凭证,因此无法调用该 API。
长话短说:按预期工作。
推荐阅读
- windows - 在另一个文本文件中查找变量文本并获取包含行
- java - 如何用 Cucumber 解决 Selenium 中的 java.lang.NullPointerException?- 行家
- android - 在 OkHttp 响应中传递 ip 地址时为空
- linux - FFMPEG + V4L2 选项
- c++ - 如何返回向量的 2 个索引?
- sql - 如果先前日期中存在新值,则计算重复项
- python - Python请求获取nse印度网站的返回响应代码401
- python - 在我的情况下,是否有在 python 中使用多重继承的替代方法?
- security - 用于国际验证码的字母表
- azure - 将具有属性的不同类型的文件从 Gen1 Azur 湖复制到 Azur Gen2 湖(如上次更新)