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á.
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);
};