Wechseln von nicht authentifizierten Benutzern zu authentifizierten Benutzern (Identitäten-Pools) - 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.

Wechseln von nicht authentifizierten Benutzern zu authentifizierten Benutzern (Identitäten-Pools)

Amazon-Cognito-Identitäten-Pools unterstützen authentifizierte und nicht authentifizierte Benutzer. Nicht authentifizierte Benutzer erhalten Zugriff auf Ihre AWS-Ressourcen, auch wenn diese nicht mit Ihren Identitätsanbietern (IdPs) angemeldet sind. Dieser Grad des Zugriffs ist nützlich, um Inhalte für Benutzer anzuzeigen, bevor sie sich anmelden. Jeder nicht authentifizierte Benutzer hat eine eindeutige Identität im Identitäten-Pool, auch wenn er nicht einzeln angemeldet und authentifiziert ist.

In diesem Abschnitt wird beschrieben, wie Benutzer vorgehen, wenn sie von einer Anmeldung als nicht authentifizierte Identität zur Verwendung einer authentifizierten Identität wechseln möchten.

Android

Benutzer können sich als nicht authentifizierte Gäste bei Ihrer Anwendung anmelden. Schließlich können sie sich dazu entscheiden, sich mit einem der unterstützten IdPs anzumelden. Amazon Cognito stellt sicher, dass eine ältere Identität dieselbe eindeutige ID beibehält wie die neue und dass die Profildaten automatisch zusammengeführt werden.

Ihre Anwendung wird über die Schnittstelle IdentityChangedListener über die Profilzusammenführung informiert. Implementieren Sie die Methode identityChanged in der Schnittstelle, um diese Meldungen zu erhalten:

@override public void identityChanged(String oldIdentityId, String newIdentityId) { // handle the change }

iOS – Objective-C

Benutzer können sich als nicht authentifizierte Gäste bei Ihrer Anwendung anmelden. Schließlich können sie sich dazu entscheiden, sich mit einem der unterstützten IdPs anzumelden. Amazon Cognito stellt sicher, dass eine ältere Identität dieselbe eindeutige ID beibehält wie die neue und dass die Profildaten automatisch zusammengeführt werden.

NSNotificationCenter informiert die Anwendung über eine Profilzusammenführung:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(identityIdDidChange:) name:AWSCognitoIdentityIdChangedNotification object:nil]; -(void)identityDidChange:(NSNotification*)notification { NSDictionary *userInfo = notification.userInfo; NSLog(@"identity changed from %@ to %@", [userInfo objectForKey:AWSCognitoNotificationPreviousId], [userInfo objectForKey:AWSCognitoNotificationNewId]); }

iOS – Swift

Benutzer können sich als nicht authentifizierte Gäste bei Ihrer Anwendung anmelden. Schließlich können sie sich dazu entscheiden, sich mit einem der unterstützten IdPs anzumelden. Amazon Cognito stellt sicher, dass eine ältere Identität dieselbe eindeutige ID beibehält wie die neue und dass die Profildaten automatisch zusammengeführt werden.

NSNotificationCenter informiert die Anwendung über eine Profilzusammenführung:

[NSNotificationCenter.defaultCenter().addObserver(observer: self selector:"identityDidChange" name:AWSCognitoIdentityIdChangedNotification object:nil) func identityDidChange(notification: NSNotification!) { if let userInfo = notification.userInfo as? [String: AnyObject] { print("identity changed from: \(userInfo[AWSCognitoNotificationPreviousId]) to: \(userInfo[AWSCognitoNotificationNewId])") } }

JavaScript

Anfänglich nicht authentifizierter Benutzer

Benutzer beginnen in der Regel mit der nicht authentifizierten Rolle. Für diese Rolle stellen Sie die Eigenschaft für die Anmeldeinformationen Ihres Konfigurationsobjekt so ein, dass sie keine Anmeldeeigenschaft enthält. In diesem Fall könnte Ihre Standardkonfiguration folgendermaßen aussehen:

// set the default config object var creds = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030' }); AWS.config.credentials = creds;

Wechseln Sie zum authentifizierten Benutzer

Wenn ein nicht authentifizierter Benutzer sich bei einem IdP anmeldet und Sie ein Token haben, können Sie den Benutzer vom nicht authentifizierten in einen authentifizierten Benutzer ändern, indem Sie eine benutzerdefinierte Funktion aufrufen, welche das Anmeldeobjekt aktualisiert und das Anmelde-Token hinzufügt:

// Called when an identity provider has a token for a logged in user function userLoggedIn(providerName, token) { creds.params.Logins = creds.params.Logins || {}; creds.params.Logins[providerName] = token; // Expire credentials to refresh them on the next request creds.expired = true; }

Darüber hinaus können Sie ein CognitoIdentityCredentials-Objekt erstellen. Wenn Sie dies tun, müssen Sie die Anmeldeeigenschaften von vorhandenen Serviceobjekten zurücksetzen, um die aktualisierten Konfigurationsdaten für die Anmeldeinformationen darzustellen. Weitere Informationen finden Sie unter Verwenden des Global Configuration Object.

Weitere Informationen zum CognitoIdentityCredentials-Objekt finden Sie unter AWS-CognitoIdentityCredentials in der AWS SDK for JavaScript-API-Referenz.

Unity

Benutzer können sich als nicht authentifizierte Gäste bei Ihrer Anwendung anmelden. Schließlich können sie sich dazu entscheiden, sich mit einem der unterstützten IdPs anzumelden. Amazon Cognito stellt sicher, dass eine ältere Identität dieselbe eindeutige ID beibehält wie die neue und dass die Profildaten automatisch zusammengeführt werden.

Sie können das IdentityChangedEvent abonnieren, um Benachrichtigungen über Profilzusammenführungen zu erhalten:

credentialsProvider.IdentityChangedEvent += delegate(object sender, CognitoAWSCredentials.IdentityChangedArgs e) { // handle the change Debug.log("Identity changed from " + e.OldIdentityId + " to " + e.NewIdentityId); };

Xamarin

Benutzer können sich als nicht authentifizierte Gäste bei Ihrer Anwendung anmelden. Schließlich können sie sich dazu entscheiden, sich mit einem der unterstützten IdPs anzumelden. Amazon Cognito stellt sicher, dass eine ältere Identität dieselbe eindeutige ID beibehält wie die neue und dass die Profildaten automatisch zusammengeführt werden.

credentialsProvider.IdentityChangedEvent += delegate(object sender, CognitoAWSCredentials.IdentityChangedArgs e){ // handle the change Console.WriteLine("Identity changed from " + e.OldIdentityId + " to " + e.NewIdentityId); };