0

私はSPAチュートリアルのpragprogに従っています。この例ではgoogle +を使用してアマゾンのcognitoにトークンを保存しています。 googleにログインしてcognitoに登録する。ウェブページからamazon cognitoにFacebookのアクセストークンを登録してください

Facebookアプリケーションで提供されているアクセストークンをcognitoで登録すると、期待どおりに動作しません。私はFBでWebアプリケーションを登録し、提供されたアプリIDを使用しています。 FBへのログインはOKで、アクセストークンを取得します。

HTML:

<div class="fb-login-button" ... onlogin="checkFacebookStatus()"></div> 
<script> 
    $(document).ready(function() { 
     $.ajaxSetup({ cache: true }); 
     $.getScript('//connect.facebook.net/nn_NO/sdk.js', function() { 
      FB.init({ 
       appId  : 'my app id', 
       xfbml  : true, 
       version : 'v2.6' 
      }); 
      $('#fb-login-button').removeAttr('disabled'); 
      checkFacebookStatus(); 
     }); 
    }); 
</script> 

JS:

function checkFacebookStatus() { 
    FB.getLoginStatus(function(response) { 
     if (response.status === 'connected') { 
      var accessToken = response.authResponse.accessToken; 
      facebookSignIn(accessToken); 
     } 
    }); 
} 

function facebookSignIn(accessToken) { 
    AWS.config.update({ 
     region: 'eu-west-1', 
     credentials: new AWS.CognitoIdentityCredentials({ 
      IdentityPoolId: learnjs.poolId, 
      Logins: { 
       'graph.facebook.com': accessToken 
      } 
     }) 
    }) 
} 

私はAmazon Cognitoで認証プロバイダでFBアプリIDを登録しています。コンソールに出力すると、私の名前、メール、トークンが表示されます。私はhttps://localhostの自己署名証明書でそれを実行するので、wiresharkは暗号化された通信を示します。 httpとhttpsが混在していると、FBへのログインは失敗します。

答えて

0

step threeで概要を説明したCognitoSyncManager()を作成する必要があります。これにより、amazon cognitoアイデンティティプールにIDが作成され、FBによって提供されるトークンでアクセスされます。私の場合、私は地域eu-west-1(アイルランド)を持っています。

AWS.config.credentials.get(function() { 
    client = new AWS.CognitoSyncManager(); 
}); 
関連する問題