【问题标题】:Access to an AWS API Gateway with Cognito connected with Facebook in JavaScript使用 Cognito 访问 AWS API 网关并使用 JavaScript 与 Facebook 连接
【发布时间】:2017-02-22 20:24:25
【问题描述】:

我正在尝试从与 Facebook 连接的用户访问我的 AWS API Gateway。

首先,我尝试使用带有简单用户池的 Cognito(无需 Facebook 登录),我的用户可以通过发送用户名和密码登录,Cognito 向我发回我用来通过我的 API 的自动程序的 accessToken然后访问我的控制器。一切正常。

然后,我想使用 Facebook 连接到我的 API。所以我这样做了:

AWS.config.region = 'eu-west-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: {myIdentityPoolId},Logins: {
           'graph.facebook.com': {myFacebookToken}
         }
    });

AWS.config.credentials.get(function(err) {
    if (err)
        console.log(err);
    else {
        console.log("Cognito accessKeyId ", AWS.config.credentials.accessKeyId);
        console.log("Cognito secretAccessKey ", AWS.config.credentials.secretAccessKey);
        console.log("Cognito sessionToken ", AWS.config.credentials.sessionToken);
        console.log("Cognito Identity Id ", AWS.config.credentials.identityId);
    }
 });

一切似乎都很好,我收到了 accessKeyId、secretAccessKey、sessionToken、一个身份 ID,但是我应该怎么做才能访问我的 API。

在我的 API 配置中,我无法仅使用用户池创建授权者,而不能使用联合实体创建授权者。

其实我不明白联合实体的目的。 如果有人可以帮助我或给我一个 facebook 连接的基本示例,那就太好了。

谢谢!

【问题讨论】:

标签: javascript amazon-web-services facebook-login amazon-cognito aws-api-gateway


【解决方案1】:

this 帖子中已经非常准确地回答了这个问题。如前所述,您必须在 API Gateway 中使用 IAM_AUTH,并使用从 Cognito Identity 获得的令牌对您的请求进行签名。更多关于如何签署请求的信息是here

谢谢!丽缇莎。

【讨论】:

    猜你喜欢
    • 2018-07-24
    • 2019-01-15
    • 2016-09-22
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 2019-06-22
    • 2019-11-18
    • 2017-11-23
    相关资源
    最近更新 更多