试图找出我在这里做错了什么。
LWA(使用亚马逊登录)运行正常。我得到了访问令牌,我立即设置了Logins参数:
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'us-east-1:2a...',
Logins: {
'www.amazon.com': access_token
}
});
接下来,当我打电话通过以下方式获取登录详细信息时:
AWS.config.credentials.get(err,data){
console.log(data);
console.log(error);
};
它会调用POST https://cognito-identity.us-east-1.amazonaws.com/
并传递以下数据{"IdentityPoolId":"us-east-1:2a...","Logins":{"www.amazon.com":"Atza%7C..."}}
不幸的是,该通话的响应始终为400 x-amzn-ErrorMessage:Invalid login token. x-amzn-ErrorType:NotAuthorizedException:
我在Cognito中创建了一个联合身份池,并将安全配置文件ID(LWA)指定为Amazon App Id。 Cognito身份创建向导还为Auth和UnAuth创建了必要的IAM角色,这些角色似乎具有适当的策略集。未经身份验证的身份已启用。
我真的迷失在这里。我只需要在我的网络应用程序上获得基于LWA的身份验证,这样当我对API网关进行REST调用时,我可以保护资源。此外,除了Cognito之外,我没有使用AWS SDK。
答案 0 :(得分:0)
您的代码看起来很好。在两种情况下可能会抛出此错误。
您能否确认这两种情况都不是原因?