

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
<a name="switching-identities"></a>

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
<a name="switching-identities-1.android"></a>

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
<a name="switching-identities-1.ios-objc"></a>

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
<a name="switching-identities-1.ios-swift"></a>

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
<a name="switching-identities-1.javascript"></a>

### Utilisateur initialement non authentifié
<a name="switching-identities-1.javascript-unauth"></a>

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é
<a name="switching-identities-1.javascript-auth"></a>

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](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/global-config-object.html).

Pour plus d'informations sur l'`CognitoIdentityCredentials`objet, consultez [AWS. CognitoIdentityCredentials](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityCredentials.html)dans la référence de AWS SDK pour JavaScript l'API.

## Unity
<a name="switching-identities-1.unity"></a>

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
<a name="switching-identities-1.xamarin"></a>

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);
};
```