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'CognitoIdentityCredentials
objet, 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); };