Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Cognito访问AWS API网关,并使用JavaScript连接Facebook_Javascript_Amazon Web Services_Facebook Login_Amazon Cognito_Aws Api Gateway - Fatal编程技术网

使用Cognito访问AWS API网关,并使用JavaScript连接Facebook

使用Cognito访问AWS API网关,并使用JavaScript连接Facebook,javascript,amazon-web-services,facebook-login,amazon-cognito,aws-api-gateway,Javascript,Amazon Web Services,Facebook Login,Amazon Cognito,Aws Api Gateway,我正试图从与Facebook连接的用户访问我的AWS API网关 首先,我尝试使用一个带有简单用户池的Cognito(没有Facebook登录),我的用户可以通过发送用户名和密码登录,Cognito向我发回一个accessToken,我使用它通过API的自动生成程序,然后访问我的控制器。一切正常 然后,我想使用Facebook连接到我的API。所以我这样做了: AWS.config.region = 'eu-west-1'; AWS.config.credentials = new AWS.Co

我正试图从与Facebook连接的用户访问我的AWS API网关

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

然后,我想使用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连接的基本例子,那就太好了


谢谢

这个问题在《邮报》中得到了非常准确的回答。如上所述,您必须在API网关中使用IAM_AUTH,并使用从Cognito Identity获得的令牌对请求进行签名。有关如何签署请求的更多信息,请参阅

谢谢!Ritisha.

可能的副本