Passer d'utilisateurs non authentifiés à des utilisateurs authentifiés - Amazon Cognito

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Passer d'utilisateurs non authentifiés à des utilisateurs authentifiés

Les groupes d'identités Amazon Cognito prennent en charge les utilisateurs authentifiés et non authentifiés. Les utilisateurs non authentifiés ont accès à vos AWS ressources même s'ils ne sont connectés à aucun de vos fournisseurs d'identité ()IdPs. Ce degré d'accès est utile pour afficher du contenu aux utilisateurs avant qu'ils se connectent. Chaque utilisateur non authentifié comporte une identité unique dans le groupe d'identités, même s'il n'a pas été individuellement connecté et authentifié.

Cette section décrit le cas où votre utilisateur choisirait de basculer d'une connexion sous une identité non authentifiée à une connexion sous une identité authentifiée.

Android

Les utilisateurs peuvent se connecter à votre application en tant qu'invités non authentifiés. Ils pourraient éventuellement décider de se connecter en utilisant l'un des outils pris en charge IdPs. Amazon Cognito veille à ce qu'une ancienne identité conserve le même identifiant unique que la nouvelle, et que les données de profil sont fusionnées automatiquement.

Votre application est informée d'une fusion de profils via l'interface IdentityChangedListener. Mettez en œuvre la méthode identityChanged dans l'interface pour recevoir ces messages :

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

iOS – objective-C

Les utilisateurs peuvent se connecter à votre application en tant qu'invités non authentifiés. Ils pourraient éventuellement décider de se connecter en utilisant l'un des outils pris en charge IdPs. Amazon Cognito veille à ce qu'une ancienne identité conserve le même identifiant unique que la nouvelle, et que les données de profil sont fusionnées automatiquement.

NSNotificationCenter informe votre application d'une fusion de profils :

[[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

Les utilisateurs peuvent se connecter à votre application en tant qu'invités non authentifiés. Ils pourraient éventuellement décider de se connecter en utilisant l'un des outils pris en charge IdPs. Amazon Cognito veille à ce qu'une ancienne identité conserve le même identifiant unique que la nouvelle, et que les données de profil sont fusionnées automatiquement.

NSNotificationCenter informe votre application d'une fusion de profils :

[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

Utilisateur initialement non authentifié

Les utilisateurs commencent généralement avec le rôle non authentifié. Pour ce rôle, vous définissez la propriété des informations d'identification de votre objet de configuration sans propriété d'identifiants. Dans ce cas, votre configuration par défaut peut se présenter comme suit :

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

Basculement vers un utilisateur authentifié

Lorsqu'un utilisateur non authentifié se connecte à un fournisseur d'identité (IdP) et que vous avez un jeton, vous pouvez faire basculer l'utilisateur non authentifié en utilisateur authentifié en appelant une fonction personnalisée qui met à jour l'objet des informations d'identification et ajoute le jeton d'identifiants :

// 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; }

Vous pouvez également créer un objet CognitoIdentityCredentials. Dans ce cas, vous devez réinitialiser les propriétés d'informations d'identification de n'importe quel objet de service existant pour refléter les informations de configuration des informations d'identification mises à jour. Consultez Utilisation de l'objet de configuration globale.

Pour plus d'informations sur l'CognitoIdentityCredentialsobjet, consultez AWS. CognitoIdentityCredentialsdans la AWS SDK for JavaScript API référence.

Unity

Les utilisateurs peuvent se connecter à votre application en tant qu'invités non authentifiés. Ils pourraient éventuellement décider de se connecter en utilisant l'un des outils pris en charge IdPs. Amazon Cognito veille à ce qu'une ancienne identité conserve le même identifiant unique que la nouvelle, et que les données de profil sont fusionnées automatiquement.

Pour être informé des fusions de profil, vous pouvez vous abonner à l'événement IdentityChangedEvent :

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

Xamarin

Les utilisateurs peuvent se connecter à votre application en tant qu'invités non authentifiés. Ils pourraient éventuellement décider de se connecter en utilisant l'un des outils pris en charge IdPs. Amazon Cognito veille à ce qu'une ancienne identité conserve le même identifiant unique que la nouvelle, et que les données de profil sont fusionnées automatiquement.

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