首页 文章

AWS Cognito用于登录Amazon,导致NotAuthorizedException

提问于
浏览
0

试着找出我在这里做错了什么 .

LWA(使用亚马逊登录)运行正常 . 我得到了访问令牌,我立即设置了登录参数:

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 .

1 回答

  • 0

    你的代码看起来很好 . 在两种情况下可能会抛出此错误 .

    • 服务获取的访问令牌已过期 .

    • 访问令牌来自与您的身份池中配置的不同的LWA应用程序 .

    您能否确认这两种情况都不是原因?

相关问题