Como alternar usuários não autenticados para usuários autenticados (grupos de identidades) - Amazon Cognito

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como alternar usuários não autenticados para usuários autenticados (grupos de identidades)

Os grupos de identidade do Amazon Cognito são compatíveis com usuários autenticados e não autenticados. Os usuários não autenticados recebem acesso aos recursos da AWS mesmo que não tenham feito login com um dos seus provedores de identidade (IdPs). Esse nível de acesso é útil para exibir conteúdo para os usuários antes que eles de façam login. Cada usuário não autenticado tem uma identidade exclusiva no grupo de identidades, embora não tenha feito login e sido autenticado individualmente.

Esta seção descreve o caso em que o usuário escolhe mudar de fazer login com uma identidade não autenticada para usar uma identidade autenticada.

Android

Os usuários podem fazer login em seu aplicativo como convidados não autenticados. Por fim, talvez eles decidam fazer login usando um dos IdPs com suporte. O Amazon Cognito garante que uma identidade antiga mantenha o mesmo identificador exclusivo da nova e que os dados do perfil sejam mesclados automaticamente.

Seu aplicativo é informado sobre uma mesclagem de perfil por meio da interface IdentityChangedListener. Implemente o método identityChanged na interface para receber estas mensagens:

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

iOS - objective-C

Os usuários podem fazer login em seu aplicativo como convidados não autenticados. Por fim, talvez eles decidam fazer login usando um dos IdPs com suporte. O Amazon Cognito garante que uma identidade antiga mantenha o mesmo identificador exclusivo da nova e que os dados do perfil sejam mesclados automaticamente.

NSNotificationCenter informa seu aplicativo sobre uma mesclagem de perfil:

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

Os usuários podem fazer login em seu aplicativo como convidados não autenticados. Por fim, talvez eles decidam fazer login usando um dos IdPs com suporte. O Amazon Cognito garante que uma identidade antiga mantenha o mesmo identificador exclusivo da nova e que os dados do perfil sejam mesclados automaticamente.

NSNotificationCenter informa seu aplicativo sobre uma mesclagem de perfil:

[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

Usuário inicialmente não autenticado

Os usuários geralmente começam com a função não autenticada. Para essa função, você define a propriedade de credenciais de seu objeto de configuração sem uma propriedade de logins. Neste caso, sua configuração padrão pode parecer com o seguinte:

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

Alternar para usuário autenticado

Quando um usuário autenticado se conecta a um IdP e você tem um token, você pode mudar o usuário de não autenticado para autenticado chamando uma função personalizada que atualiza o objeto de credenciais e adiciona o token de logins:

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

Você também pode criar um objeto CognitoIdentityCredentials. Se fizer isso, você deverá redefinir as propriedades das credenciais dos objetos de serviço existentes para refletir as informações de configuração das credenciais atualizadas. Consulte Usar objeto de configuração global.

Para obter mais informações sobre o objeto CognitoIdentityCredentials, consulte AWSCognitoIdentityCredentials na Referência de API do AWS SDK for JavaScript.

Unity

Os usuários podem fazer login em seu aplicativo como convidados não autenticados. Por fim, talvez eles decidam fazer login usando um dos IdPs com suporte. O Amazon Cognito garante que uma identidade antiga mantenha o mesmo identificador exclusivo da nova e que os dados do perfil sejam mesclados automaticamente.

Você pode se inscrever no IdentityChangedEvent para ser notificado sobre mesclagens de perfil:

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

Xamarin

Os usuários podem fazer login em seu aplicativo como convidados não autenticados. Por fim, talvez eles decidam fazer login usando um dos IdPs com suporte. O Amazon Cognito garante que uma identidade antiga mantenha o mesmo identificador exclusivo da nova e que os dados do perfil sejam mesclados automaticamente.

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