我想要实现的目标:
我在this article中描述了我的情况,但我不想在我的网页上使用SDK - 我希望保持我的应用程序简单快速,但事实证明 - 很难找到一个不使用SDK的示例 . 我难以接受http调用,我需要从中获取DynamoDB的有限IAM凭据 . 在我对文档的调查中,我找到了方法GetCredentialsForIdentity,描述:
返回提供的身份标识的凭据 . 任何提供的登录都将针对支持的登录提供程序进行验证 . 如果令牌用于cognito-identity.amazonaws.com,则会将其传递给具有令牌的适当角色的AWS Security Token Service .
但是在这个页面上没有提到该 endpoints 的url . 我试过了https://cognito-idp.us-east-1.amazonaws.com
https://cognito-identity.us-east-1.amazonaws.com
https://<mydomain>.auth.us-east-1.amazoncognito.com
我现在得到400错误,可能是因为 endpoints 网址不正确 . 我目前的代码:
fetch('https://cognito-identity.us-east-1.amazonaws.com', {
'method': 'POST',
'headers': {
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AWSCognitoIdentityService.GetCredentialsForIdentity',
},
'body': '{"IdentityId": "us-east-1:<GUID of the user>"}'
});
1)什么是http endpoints ?
2)我正朝着正确的方向挖掘?
1 回答
正确的终点是
https://cognito-identity.us-east-1.amazonaws.com
according to this page .
另外,我发现我需要提供
sub
来自id_token
,但首先是GetId的用户 .