2016-12-27 2 views
4

Ich bin neu bei Cognito. Also brauche ich eine Klarstellung darüber, wie ich Benutzer registrieren sollte, die sich über einen sozialen Login angemeldet haben.Benutzerpools für Benutzer, die sich über Twitter registrieren?

Ich habe sowohl einen Benutzerpool als auch einen föderierten Identitätspool erstellt.

Dann führte ich eine grundlegende oauth Anfrage zu twitter auf den Login-Button des Benutzers klicken, und dann mit dem twitter-Token und geheime, die ich nach erfolgreichem Anmelden sie erhalte ich eine Anfrage, um Cognito-Identitätsnachweise zu erhalten.

var params = { 
    IdentityPoolId: 'my-pool-id', 
    Logins: { 
    'api.twitter.com': userToken+";"+userSecret 
    } 
}; 

// initialize the Credentials object with our parameters 
AWS.config.credentials = new AWS.CognitoIdentityCredentials(params); 
AWS.config.credentials.get(function(err) { 
    if (err) { 
     console.log("Error: "+err); 
     return; 
    } 
    console.log("Cognito Identity Id: " + AWS.config.credentials.identityId); 

    // Other service clients will automatically use the Cognito Credentials provider 
    // configured in the JavaScript SDK. 
    var cognitoSyncClient = new AWS.CognitoSync(); 
    cognitoSyncClient.listDatasets({ 
     IdentityId: AWS.config.credentials.identityId, 
     IdentityPoolId: params.IdentityPoolId 
    }, function(err, data) { 
     if (!err) { 
      console.log("success", JSON.stringify(data)); 
     } else { 
     console.log("cognito error", err); 
    } 
}); 

Und dann bekomme ich eine erfolgreiche Antwort mit einer cognito Identität Id und eine Liste der Datensätze für diesen Benutzer.

Sollte ich diesen Benutzer auch in einem Benutzerpool registrieren? Die Dokumentation für dieses Produkt ist etwas unzusammenhängend, wenn es um das Konzept des Social Login geht.

Antwort

2

Benutzerpools legen sehr einfach ist nur da, um als eine Datenbank von Benutzern für Ihre Anwendung zu fungieren. Es ist für Leute, die nicht möchten, dass eine Datenbank verwaltet werden muss, um ihre Benutzer-Login-Daten unter anderem zu speichern.

Benutzer Pools sind ein Identity-Provider, wie Google, Facebook, Twitter usw.

Wenn Sie nur wünschen, damit die Benutzer in der Anwendung mit Twitter Anmeldeinformationen anmelden, dann haben Sie keine Notwendigkeit für Benutzer Pools.

Verwenden Sie nur Benutzerpools, wenn Sie eine verwaltete Datenbank mit den Benutzerinformationen erstellen möchten.

https://aws.amazon.com/blogs/aws/new-user-pools-for-amazon-cognito/

+0

Rob, danke. Nachdem sich ein Twitter-Benutzer bei meiner Anwendung authentifiziert hat, möchte ich einige Benutzereinstellungen für diese in meiner App verwalten. Müsste ich dann einen Userpool nutzen? – Kristian

+1

Kein Problem, basierend auf dem, was Sie beschrieben haben, klingt es nicht so, als wären User Pools für Ihren Anwendungsfall geeignet. Wenn Sie nur einige Benutzereinstellungen speichern möchten, die mit ihrem Twitter-Konto verknüpft sind, können Sie Cognito Sync verwenden. Mit Cognito Sync können Sie Daten auf Identitätsbasis speichern. Es ist perfekt zum Speichern von Dingen wie Benutzereinstellungen für Ihre Anwendung. Und es gibt nicht zu viel Extra, das Sie tun müssen, um es zu verwenden, sobald Sie mit Cognito Federated Identitäten eingerichtet sind. http://docs.aws.amazon.com/cognito/latest/developerguide/cognito-sync.html –

Verwandte Themen