Facebook (Identitätspools) - Amazon Cognito

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Facebook (Identitätspools)

Amazon CognitoDank der Integration von -Identitätspools mit Facebook ist die verbundene Authentifizierung für Ihre Mobil-Anwendungsbenutzer möglich. In diesem Abschnitt wird erklärt, wie Sie Ihre Anwendung bei Facebook als Identitätsanbieter registrieren und einrichten.

Einrichten von Facebook

Sie müssen Ihre Anwendung bei Facebook registrieren, bevor Sie Facebook-Benutzer authentifizieren und mit Facebook-APIs interagieren können.

Das Facebook Developers-Portal führt Sie durch den Prozess der Einrichtung Ihrer Anwendung. Wenn Sie diesen Vorgang noch nicht durchgeführt haben, müssen Sie dies tun, bevor Sie Facebook in Ihren Amazon Cognito-Identitätspool integrieren können:

So richten Sie Facebook ein

  1. Melden Sie beim Facebook Developer-Portal mit Ihren Facebook-Anmeldeinformationen an.

  2. Wählen Sie im Menü Apps die Option Neue App hinzufügen aus.

  3. Wählen Sie eine Plattform aus und schließen Sie den Schnellstart-Prozess ab.

Android

Im Facebook-Handbuch "Erste Schritte" finden Sie zusätzliche Informationen zur Integration mit Facebook Login.

iOS – Objective-C

Im Facebook-Handbuch "Erste Schritte" finden Sie zusätzliche Informationen zur Integration mit Facebook Login.

iOS – Swift

Im Facebook-Handbuch "Erste Schritte" finden Sie zusätzliche Informationen zur Integration mit Facebook Login.

JavaScript

Im Facebook-Handbuch "Erste Schritte" finden Sie zusätzliche Informationen zur Integration mit Facebook Login.

Unity

Im Facebook-Handbuch "Erste Schritte" finden Sie zusätzliche Informationen zur Integration mit Facebook Login.

Xamarin

Um Facebook-Authentifizierung bereitzustellen, befolgen Sie zunächst den entsprechenden Ablauf unten, um das Facebook-SDK in Ihrer Anwendung einzurichten. Amazon Cognito-Identitäten-Pools verwenden das Facebook-Zugriffstoken zur Erstellung einer eindeutigen Benutzerkennung, die mit einer Amazon Cognito-Identität verbunden ist.

Konfigurieren des externen Anbieters in der Amazon Cognito-Verbundidentitäten-Konsole

Gehen Sie wie folgt vor, um Ihren externen Anbieter zu konfigurieren.

  1. Wählen Sie Manage Identity Pools (Identitäten-Pools verwalten) auf der Startseite der Amazon Cognito-Konsole aus.

  2. Wählen Sie den Namen des Identitätspools, für den Sie Facebook als externen Anbieter aktivieren möchten. Die Seite Dashboard für Ihren Identitäten-Pool wird angezeigt.

  3. Klicken Sie in der oberen rechten Ecke der Seite auf Dashboard und dann auf Edit identity pool (Identitäten-Pool bearbeiten). Die Seite Edit identity pool (Identitäten-Pool bearbeiten) wird angezeigt.

  4. Scrollen Sie nach unten und klicken Sie zum Erweitern auf Authentication providers (Authentifizierungsanbieter).

  5. Wählen Sie die Registerkarte Facebook aus.

  6. Wählen Sie Unlock (Entsperren) aus.

  7. Geben Sie die Facebook-App-ID ein, die Sie von Facebook erhalten haben und wählen Sie dann Save Changes (Änderungen speichern).

Verwenden von Facebook

Android

Um Facebook-Authentifizierung bereitzustellen, schließen Sie zunächst anhand der Anleitungen im Facebook-Leitfaden das SDK in Ihre Anwendung ein. Fügen Sie dann die Schaltfläche "Mit Facebook anmelden" zu Ihrer Android-Benutzeroberfläche hinzu. Das Facebook-SDK verwendet ein Sitzungsobjekt, um seinen Status nachzuverfolgen. Amazon Cognito verwendet das Zugriffs-Token von diesem Sitzungsobjekt, um den Benutzer zu authentifizieren, die eindeutige Kennung zu generieren und bei Bedarf den Benutzerzugriff auf andere AWS-Ressourcen zu gewähren.

Sobald Sie den Benutzer mit dem Facebook-SDK authentifiziert haben, fügen Sie das Sitzungs-Token zu den Amazon Cognito-Anmeldeinformationen des Anbieters hinzu.

Facebook-SDK 4.0 oder höher:

Map<String, String> logins = new HashMap<String, String>(); logins.put("graph.facebook.com", AccessToken.getCurrentAccessToken().getToken()); credentialsProvider.setLogins(logins);

Facebook-SDK vor 4.0:

Map<String, String> logins = new HashMap<String, String>(); logins.put("graph.facebook.com", Session.getActiveSession().getAccessToken()); credentialsProvider.setLogins(logins);

Die Facebook-Anmeldung initialisiert eine Singleton-Sitzung im SDK. Das Facebook-Sitzungsobjekt enthält ein OAuth-Token, anhand dessen Amazon Cognito AWS-Anmeldeinformationen für Ihre authentifizierten Endbenutzer generiert. Darüber hinaus verwendet Amazon Cognito das Token, um in Ihrer Benutzer-Datenbank zu überprüfen, ob ein Benutzer mit dieser speziellen Facebook-Identität existiert. Wenn der Benutzer bereits vorhanden ist, gibt API gibt den vorhandenen Bezeichner zurück. Andernfalls wird ein neuer Bezeichner zurückgegeben. Bezeichner werden automatisch vom Client-SDK auf dem lokalen Gerät zwischengespeichert.

Anmerkung

Nachdem Sie die Anmeldezuordnung festgelegt haben, müssen Sie einen Aufruf an refresh oder get ausgeben, um die AWS-Anmeldeinformationen tatsächlich zu erhalten.

iOS – Objective-C

Um Facebook-Authentifizierung hinzuzufügen, integrieren Sie zunächst anhand der Anleitungen im Facebook-Leitfaden das SDK in Ihre Anwendung. Fügen Sie dann eine Schaltfläche "Mit Facebook anmelden" zu Ihrer Benutzeroberfläche hinzu. Das Facebook-SDK verwendet ein Sitzungsobjekt, um seinen Status nachzuverfolgen. Amazon Cognito verwendet den Zugriffstoken von diesem Sitzungsobjekt zur Authentifizierung des Benutzers, und um ihn mit einem eindeutigen Amazon Cognito-Identitäten-Pool (Verbundidentität) zu verbinden.

Um das Facebook-Zugriffs-Token für Amazon Cognito bereitzustellen, implementieren Sie das AWSIdentityProviderManager-Protokoll.

Geben Sie in der Implementierung der logins-Methode ein Wörterbuch zurück, das AWSIdentityProviderFacebook enthält. Dieses Wörterbuch fungiert als Schlüssel und das aktuelle Zugriffstoken des authentifizierten Facebook-Benutzers als Wert, wie im folgenden Codebeispiel gezeigt.

- (AWSTask<NSDictionary<NSString *, NSString *> *> *)logins { FBSDKAccessToken* fbToken = [FBSDKAccessToken currentAccessToken]; if(fbToken){ NSString *token = fbToken.tokenString; return [AWSTask taskWithResult: @{ AWSIdentityProviderFacebook : token }]; }else{ return [AWSTask taskWithError:[NSError errorWithDomain:@"Facebook Login" code:-1 userInfo:@{@"error":@"No current Facebook access token"}]]; } }

Beim Instantiieren des AWSCognitoCredentialsProvider leiten Sie die Klasse, die AWSIdentityProviderManager implementiert, als den Wert von identityProviderManager im Konstruktor weiter. Für weitere Informationen rufen Sie die Referenzseite AWSCognitoCredentialsProvider auf und wählen Sie initWithRegionType:identityPoolId: identityProviderManager.

iOS – Swift

Um Facebook-Authentifizierung hinzuzufügen, integrieren Sie zunächst anhand der Anleitungen im Facebook-Leitfaden das SDK in Ihre Anwendung. Fügen Sie dann eine Schaltfläche "Mit Facebook anmelden" zu Ihrer Benutzeroberfläche hinzu. Das Facebook-SDK verwendet ein Sitzungsobjekt, um seinen Status nachzuverfolgen. Amazon Cognito verwendet den Zugriffstoken von diesem Sitzungsobjekt zur Authentifizierung des Benutzers, und um ihn mit einem eindeutigen Amazon Cognito-Identitäten-Pool (Verbundidentität) zu verbinden.

Um das Facebook-Zugriffs-Token für Amazon Cognito bereitzustellen, implementieren Sie das AWSIdentityProviderManager-Protokoll.

Geben Sie in der Implementierung der logins-Methode ein Wörterbuch zurück, das AWSIdentityProviderFacebook enthält. Dieses Wörterbuch fungiert als Schlüssel und das aktuelle Zugriffstoken des authentifizierten Facebook-Benutzers als Wert, wie im folgenden Codebeispiel gezeigt.

class FacebookProvider: NSObject, AWSIdentityProviderManager { func logins() -> AWSTask<NSDictionary> { if let token = AccessToken.current?.authenticationToken { return AWSTask(result: [AWSIdentityProviderFacebook:token]) } return AWSTask(error:NSError(domain: "Facebook Login", code: -1 , userInfo: ["Facebook" : "No current Facebook access token"])) } }

Beim Instantiieren des AWSCognitoCredentialsProvider leiten Sie die Klasse, die AWSIdentityProviderManager implementiert, als den Wert von identityProviderManager im Konstruktor weiter. Für weitere Informationen rufen Sie die Referenzseite AWSCognitoCredentialsProvider auf und wählen Sie initWithRegionType:identityPoolId: identityProviderManager.

JavaScript

Wenn Sie die Facebook-Authentifizierung bereitstellen, fügen Sie mit Facebook-Anmeldung für das Web die Schaltfläche "Mit Facebook anmelden" auf Ihrer Website hinzu. Das Facebook-SDK verwendet ein Sitzungsobjekt, um seinen Status nachzuverfolgen. Amazon Cognito verwendet das Zugriffs-Token von diesem Sitzungsobjekt, um den Benutzer zu authentifizieren, die eindeutige Kennung zu generieren und bei Bedarf den Benutzerzugriff auf andere AWS-Ressourcen zu gewähren.

Sobald Sie den Benutzer mit dem Facebook-SDK authentifiziert haben, fügen Sie das Sitzungs-Token zu den Amazon Cognito-Anmeldeinformationen des Anbieters hinzu.

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 Amazon 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. }); } else { console.log('There was a problem logging you in.'); } });

Das Facebook-SDK erhält ein OAuth-Token, anhand dessen Amazon Cognito AWS-Anmeldeinformationen für Ihre authentifizierten Endbenutzer generiert. Darüber hinaus verwendet Amazon Cognito das Token, um in Ihrer Benutzer-Datenbank zu überprüfen, ob ein Benutzer mit dieser speziellen Facebook-Identität existiert. Wenn der Benutzer bereits vorhanden ist, gibt API gibt den vorhandenen Bezeichner zurück. Andernfalls wird ein neuer Bezeichner zurückgegeben. Bezeichner werden automatisch vom Client-SDK auf dem lokalen Gerät zwischengespeichert.

Anmerkung

Nachdem Sie die Anmeldezuordnung festgelegt haben, müssen Sie einen Aufruf an refresh oder get ausgeben, um die Anmeldeinformationen zu erhalten. Ein Code-Beispiel finden Sie unter "Anwendungsfall 17, Integrieren von Benutzerpools mit Cognito-Identität" in der JavaScript-README-Datei.

Unity

Um Facebook-Authentifizierung bereitzustellen, schließen Sie zunächst anhand der Anleitungen im Facebook-Leitfaden das SDK in Ihre Anwendung ein und richten es ein. Amazon Cognito verwendet das Facebook-Zugriffstoken vom 'FB'-Objekt zum Generieren einer eindeutigen Benutzer-ID, die einer Amazon Cognito-Identität zugeordnet ist.

Sobald Sie den Benutzer mit dem Facebook-SDK authentifiziert haben, fügen Sie das Sitzungs-Token zu den Amazon Cognito-Anmeldeinformationen hinzu.

void Start() { FB.Init(delegate() { if (FB.IsLoggedIn) { //User already logged in from a previous session AddFacebookTokenToCognito(); } else { FB.Login ("email", FacebookLoginCallback); } }); } void FacebookLoginCallback(FBResult result) { if (FB.IsLoggedIn) { AddFacebookTokenToCognito(); } else { Debug.Log("FB Login error"); } } void AddFacebookTokenToCognito() { credentials.AddLogin ("graph.facebook.com", AccessToken.CurrentAccessToken.TokenString); }

Sie sollten unbedingt FB.Login() aufrufen und sicherstellen, dass FB.IsLoggedIn wahr ist, bevor Sie FB.AccessToken verwenden.

Xamarin

Xamarin für Android:

public void InitializeFacebook() { FacebookSdk.SdkInitialize(this.ApplicationContext); callbackManager = CallbackManagerFactory.Create(); LoginManager.Instance.RegisterCallback(callbackManager, new FacebookCallback &lt; LoginResult &gt; () { HandleSuccess = loginResult = &gt; { var accessToken = loginResult.AccessToken; credentials.AddLogin("graph.facebook.com", accessToken.Token); //open new activity }, HandleCancel = () = &gt; { //throw error message }, HandleError = loginError = &gt; { //throw error message } }); LoginManager.Instance.LogInWithReadPermissions(this, new List &lt; string &gt; { "public_profile" }); }

Xamarin für iOS:

public void InitializeFacebook() { LoginManager login = new LoginManager(); login.LogInWithReadPermissions(readPermissions.ToArray(), delegate(LoginManagerLoginResult result, NSError error) { if (error != null) { //throw error message } else if (result.IsCancelled) { //throw error message } else { var accessToken = loginResult.AccessToken; credentials.AddLogin("graph.facebook.com", accessToken.Token); //open new view controller } }); }