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
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
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
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
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
Utente inizialmente non autenticato
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
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.
Per ulteriori informazioni sull'CognitoIdentityCredentials
oggetto, vedere AWS. CognitoIdentityCredentialsnel AWS SDK for JavaScript API riferimento.
Unità
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
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); };