0

Ich bin der SPA Tutorial von Pragprog und das Beispiel verwendet google +, um ein Token in Amazon Cognito zu speichern. Loggen Sie sich bei Google ein und registrieren Sie sich in Cognito-Werken.Registrieren Sie ein Facebook Access Token in Amazon Cognito von einer Webseite

Die Registrierung eines von der Facebook App in Cognito bereitgestellten Zugriffstokens funktioniert jedoch nicht wie erwartet. Ich habe eine Web-App bei FB registriert und verwende die mitgelieferte App-ID. Login zu FB ist OK und ich bekomme das Access-Token.

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 
      } 
     }) 
    }) 
} 

Ich habe die FB App-ID in Authentifizierungsanbieter in Amazon Cognito registriert. Ausgabe an die Konsole zeigt meinen Namen, Mail und das Token. Ich betreibe es mit einem selbstsignierten Zertifikat unter https://localhost, so dass wireshark verschlüsselte Kommunikation zeigt. Die Anmeldung beim FB schlägt fehl, wenn http und https gemischt sind.

Antwort

0

Ich muss einen CognitoSyncManager() wie in step three beschrieben vornehmen. Dadurch wird eine Identität im Identity-Pool amazon cognito erstellt, auf die mit dem vom FB bereitgestellten Token zugegriffen wird. In meinem Fall habe ich Region eu-west-1 (Irland).

AWS.config.credentials.get(function() { 
    client = new AWS.CognitoSyncManager(); 
}); 
Verwandte Themen