【发布时间】:2017-12-27 20:45:25
【问题描述】:
我正在尝试使用 AWS Cognito 对用户进行身份验证(使用 Google)和授权,目的是为授权用户分配 IAM 角色。
到目前为止,我一直遵循以下步骤
-
使用授权端点启动 Google OAuth 流程 http://docs.aws.amazon.com/cognito/latest/developerguide/authorization-endpoint.html
我正在使用“赠款流程” 我收到了诸如
code=b3e8bca6-5a01-45db-b4c6-cd6900d0xxxx -
向 oath/token http://docs.aws.amazon.com/cognito/latest/developerguide/token-endpoint.html 发帖请求
我收到以下信息:
"id_token": "eyJraWQiOiJJR2NVdHJcL3pOa3pQK1lre...........", "access_token": "eyJraWQiOiJCbWx0cjJvMnJlVGhHW..........", "refresh_token": "eyJjdHkiOiJKV1QiLCJlbmMiOi............", "expires_in": 3600, "token_type": "Bearer" -
尝试使用 CognitoIdentityCredentials 获取 AWS 凭据
AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: environment.identityPoolId, // Federated ID eu-west-2:af47703f-350c-4018-ae6a-xxxxxx RoleArn: environment.roleArn,// IAM role Logins: { 'accounts.google.com': data.id_token }, }); AWS.config.getCredentials((error) => { if(error) console.log("Error: ", error); this.creds = AWS.config.credentials; });
我收到一个错误的请求 500 错误
{"__type":"NotAuthorizedException","message":"Invalid login token. Issuer doesn't match providerName"}
几个问题
- 遵循的步骤顺序是否正确?
- 如何获得 CongnitoUserId ?
id_token是一个很长的字符串,但不确定我可以从中提取什么信息? - 最后我如何获得 accessKey 来进行 AWS 调用?
任何帮助或指导将不胜感激。
谢谢
【问题讨论】:
标签: amazon-web-services amazon-cognito aws-cognito federated-identity aws-java-sdk