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

时间:2017-08-25 08:09:46

标签: amazon-web-services amazon-cognito

我有一个与身份池相关联的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?

1 个答案:

答案 0 :(得分:1)

您必须使用google身份验证,并且该身份验证选项适用于" google plus"