我已经创建了一个用户池和身份池。
我用过javascript sdk。
我可以使用 javascript sdk 成功注册、发送确认码和确认用户。
但是当我尝试使用身份验证方法登录用户并尝试通过使用以下代码传递 idToken 来使用“CognitoIdentityCredentials”获取凭据时
logins[cognitoEndpoint + "/" + userPoolId] = jwtToken;
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: identityPoolId,
Logins: logins
});
它给我下面的错误
Error: Invalid identity pool configuration. Check assigned IAM roles for this pool.
at Request.extractError (aws-sdk.js:104063)
at Request.callListeners (aws-sdk.js:106060)
at Request.emit (aws-sdk.js:106034)
at Request.emit (aws-sdk.js:105121)
at Request.transition (aws-sdk.js:104843)
at AcceptorStateMachine.runTo (aws-sdk.js:108480)
at aws-sdk.js:108492
at Request.<anonymous> (aws-sdk.js:104859)
at Request.<anonymous> (aws-sdk.js:105123)
at Request.callListeners (aws-sdk.js:106070)
我已授予管理员访问身份池的“未经身份验证的 Angular 色”和“未经身份验证的 Angular 色”以及我正在使用其凭据的用户。
我是 aws 的新手。谁能告诉我我错过了什么?
如有任何帮助,我们将不胜感激。
最佳答案
检查您在 Cognito 身份池(联合身份)中分配的 Angular 色是否与身份池具有信任关系。
获取身份池 ID + 无效 Angular 色的名称。为此:
- 转到 Cognito
- 选择管理联合身份
- 选择身份池
- 点击编辑身份池(右上角)
- 记下身份池 ID
- 记下不起作用的 Angular 色的名称(例如 Cognito_blahUnauth_Role
在 IAM 中,检查 Angular 色的信任关系。 确保 StringEquals 条件值与身份池 ID 匹配。
为此:
- 转到 IAM
- 点击 Angular 色
- 点击您之前记下的 Angular 色名称
- 点击信任关系
- 在条件下的右侧,检查 StringEquals 条件是否包含您之前记下的身份池 ID。
编辑信任关系以修复。
关于javascript - AWS : Invalid identity pool configuration. 检查为此池分配的 IAM 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44043289/