1

Ich folgte der folgenden tutorial und habe die facebook Anmeldung funktioniert. Am Ende druckt es die accessToken, die großartig ist.So senden Sie den Zugriffstoken, um auf AWS-Dienste zuzugreifen - BEGINNER

FB.login(function (response) { 

    // Check if the user logged in successfully. 
    if (response.authResponse) { 

    console.log('You are now logged in.'); 

    // Add the Facebook access token to the Cognito credentials login map. 
    AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
     IdentityPoolId: 'IDENTITY_POOL_ID', 
     Logins: { 
     'graph.facebook.com': response.authResponse.accessToken 
     } 
    }); 

    // Obtain AWS credentials 
    AWS.config.credentials.get(function(){ 
     // Access AWS resources here. 
      console.log('Access Token is '+ AWS.config.credentials.identityId); 
     var s3= new AWS.s3(); 

    }); 

    } else { 
    console.log('There was a problem logging you in.'); 
    } 

}); 

Ich glaube, dass die folgende Codezeile Logins: { 'graph.facebook.com': response.authResponse.accessToken } die accessToken in Cognito registrieren. Korrigiere mich, wenn ich falsch liege.

Mein Problem ist, soll ich spare diese accessToken und es passiere, wann immer ich mit einem AWS Service kommunizierte (zum Beispiel: DynamoDB Artikel schreiben oder auch während einer Datei S3 Hinzufügen)?

Wenn ja Wie kann ich es tun? (Ich habe fast das gesamte Web gegoogelt und fand keine auf diese)

** Hinweis: Ich glaube, der Zweck eines accessToken ist eine gewisse Sicherheit hinzuzufügen, wenn die Benutzeranforderung einen AWS Dienst zuzugreifen. Also in diesem Fall Wie kann ich die accessToken zur Validierung verwenden?

Antwort

0

Sobald Sie es Cognito in einem Aufruf geben, um einige Anmeldeinformationen zu erhalten, wird Cognito es registriert, und gibt Anmeldeinformationen zurück, auf die diese authentifizierte Identität beschränkt ist.

Diese Anmeldeinformationen werden nur diesem Token zugeordnet. Sie müssen also nur die Anmeldeinformationen an andere AWS-Clients weitergeben, wenn Sie darauf zugreifen. Nachdem diese Anmeldeinformationen abgelaufen sind, müssen Sie das Token immer noch griffbereit haben, um mehr für diese authentifizierte Identität zu erhalten. Cognito benötigt mindestens ein Token, das mit einer authentifizierten Identität verknüpft ist, um Anmeldeinformationen dafür zu erhalten.

+0

Anmeldeinformationen bedeutet 'Region/App-ID/geheimer Schlüssel 'usw.? Wenn ja, wie können die Anmeldeinformationen ablaufen? – Illep

+0

Anmeldeinformationen wie in den AWS-Anmeldeinformationen, die AWS.config.credentials.get (zurückgibt (siehe http://docs.aws.amazon.com/cognito/latest/developerguide/getting-credentials.html). Die von Cognito zurückgegebenen Anmeldeinformationen sind nur gültig für eine Stunde –

+0

Also, wenn ich auf 'DynamoDB' oder' S3' zugreifen werde, sollte ich übergeben, was in dem oben angegebenen Link angegeben ist Was ist, wenn die Zugangsdaten abgelaufen sind, werde ich benachrichtigt, wenn ja? Ich nehme an, den Ablauf noch einmal zu verlängern (Entschuldigung für all diese Fragen, ich bin ein Neuling und ich bin seit einer Woche mit diesem Problem beschäftigt) – Illep