我有一个与身份池相关联的cognito用户池。 Cognito工作正常,但当我将Google添加为身份提供商时,我不知道它是如何运作的。我完成了文档中的所有步骤。
我的意思是当用户使用Google登录我的网站时。我可以获得用户的所有Google凭据,id_token,姓名,电子邮件等。
在我的api-gateway中,我需要一个身份令牌来传递(method.request.header.Authorization
)。但是当我使用Google登录时,它会生成一个id_token,我无法用于我的网关。
我可以用这个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?
答案 0 :(得分:1)
您必须使用google身份验证,并且该身份验证选项适用于" google plus"