

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Passaggio da utenti non autenticati a utenti autenticati
<a name="switching-identities"></a>

I pool di identità di Amazon Cognito supportano sia utenti autenticati che non autenticati. Gli utenti non autenticati ricevono l'accesso alle tue AWS risorse anche se non hanno effettuato l'accesso con nessuno dei tuoi provider di identità (). IdPs Tale livello di accesso è utile per visualizzare i contenuti agli utenti prima che effettuano l'accesso. Ogni utente non autenticato ha un'identità univoca nel pool di identità, anche se non ha eseguito individualmente l'accesso ed è stato autenticato.

In questa sezione viene descritto il caso in cui l'utente sceglie di cambiare dall'accesso con un'identità non autenticata all'uso di un'identità autenticata.

## Android
<a name="switching-identities-1.android"></a>

Gli utenti possono accedere all'app come ospiti non autenticati. Alla fine potrebbero decidere di accedere utilizzando uno dei servizi supportati. IdPs Amazon Cognito verifica che una vecchia identità usi lo stesso identificatore univoco della nuova identità e i dati del profilo vengono uniti automaticamente.

La tua applicazione viene informata di un'unione dei profili tramite l'interfaccia `IdentityChangedListener`. Implementa il metodo `identityChanged` nell'interfaccia per ricevere questi messaggi:

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

## iOS - Objective-C
<a name="switching-identities-1.ios-objc"></a>

Gli utenti possono accedere all'app come ospiti non autenticati. Alla fine potrebbero decidere di accedere utilizzando uno dei supporti IdPs. Amazon Cognito verifica che una vecchia identità usi lo stesso identificatore univoco della nuova identità e i dati dei due profili vengono uniti automaticamente.

`NSNotificationCenter` informa la tua applicazione di un'unione dei profili:

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

Gli utenti possono accedere all'app come ospiti non autenticati. Alla fine potrebbero decidere di accedere utilizzando uno dei supporti IdPs. Amazon Cognito verifica che una vecchia identità usi lo stesso identificatore univoco della nuova identità e i dati dei due profili vengono uniti automaticamente.

`NSNotificationCenter` informa la tua applicazione di un'unione dei profili:

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

### Utente inizialmente non autenticato
<a name="switching-identities-1.javascript-unauth"></a>

Gli utenti in genere iniziano con il ruolo non autenticato. Per questo ruolo, imposti la proprietà delle credenziali dell'oggetto di configurazione senza una proprietà di accesso. In questo caso, la configurazione predefinita potrebbe essere simile alla seguente:

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

### Cambio a utente autenticato
<a name="switching-identities-1.javascript-auth"></a>

Quando un utente non autenticato accede a un provider di identità e dispone di un token, puoi cambiare l'utente da non autenticato ad autenticato chiamando una funzione personalizzata che aggiorna l'oggetto credenziali e aggiunge il token di accesso:

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

Inoltre puoi creare un oggetto `CognitoIdentityCredentials`. In tal caso, è necessario reimpostare le proprietà delle credenziali di qualsiasi oggetto esistente del servizio per riflettere le informazioni di configurazione delle credenziali aggiornate. Vedi la sezione relativa [all'uso dell'oggetto configurazione globale](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/global-config-object.html).

Per ulteriori informazioni sull'`CognitoIdentityCredentials`oggetto, vedere [AWS. CognitoIdentityCredentials](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityCredentials.html)nell' AWS SDK per JavaScript API Reference.

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

Gli utenti possono accedere all'app come ospiti non autenticati. Alla fine potrebbero decidere di accedere utilizzando uno dei supporti IdPs. Amazon Cognito verifica che una vecchia identità usi lo stesso identificatore univoco della nuova identità e i dati del profilo vengono uniti automaticamente.

Puoi iscriverti a `IdentityChangedEvent` per ricevere notifiche sulle unioni dei profili:

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

Gli utenti possono accedere all'app come ospiti non autenticati. Alla fine potrebbero decidere di accedere utilizzando uno dei supporti IdPs. Amazon Cognito verifica che una vecchia identità usi lo stesso identificatore univoco della nuova identità e i dati del profilo vengono uniti automaticamente.

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