与 Google 关联为身份提供商的 AWS Cognito 不起作用



我有一个与身份池关联的认知用户池。Cognito工作正常,但是当我将Google添加为身份提供商时,我不知道它将如何工作。我完成了文档中的所有步骤。

我的意思是当用户使用 Google 登录我的网站时。我可以获取用户的所有Google凭据,id_token,姓名,电子邮件等。

在我的 API 网关中,我需要一个身份令牌才能传递 (method.request.header.Authorization(。但是当我使用 Google 登录时,它会生成一个id_token,我无法将其用于我的 API 网关。

我可以用这个id_token做的是使用signinCallback()并获取AWS.config.credentials; _identityId,sessionToken,accessKeyId,因此用户的所有webIdentityCredentials。但是我对所有这些无能为力,因为我需要一个由 Cognito 生成的id_token。

function signinCallback() {    
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: poolId,
Logins: {
'accounts.google.com': id_token }
});
AWS.config.region = 'eu-west-1';
// Obtain AWS credentials
AWS.config.credentials.get(function (err) {
if (err) {
console.log(err);
}
else {
console.log(AWS.config.credentials);
}
});
}

如何使用此凭据生成有效的id_token?

您必须使用Google Auth,并且该Cognito选项适用于"Google Plus">

最新更新