Vincular identidades de usuário - .NET SDK
Nesta página
O Realm fornece muitos fornecedores de autenticação para conectar usuários ao seu aplicativo. Cada fornecedor cria uma identidade de usuário exclusiva. O Realm permite mesclar várias credenciais em uma identidade de usuário.
Exemplo
Considere um aplicativo que oferece login anônimo. Isso permite que os usuários naveguem pelo aplicativo sem se registrar. Se os usuários gostariam do aplicativo, eles criarão contas permanentes. Eles se inscrevem com SSO ou autenticação por e-mail/senha. Por padrão, isso cria um novo objeto User
. O aplicativo deve vincular a nova identidade ao usuário original.
Você pode vincular identidades usando o LinkCredentialsAsync(). Isso vincula os fornecedores de autenticação a um objeto de usuário conectado.
// 1) A user logs on anonymously: var anonUser = await app.LogInAsync(Credentials.Anonymous()); // 2) They create some data, and then decide they want to save // it, which requires creating an Email/Password account. // 3) We prompt the user to log in, and then use that info to // register the new EmailPassword user, and then generate an // EmailPassword credential to link the existing anonymous // account: var email = "caleb@mongodb.com"; var password = "MySekritPwd"; await app.EmailPasswordAuth.RegisterUserAsync( email, password); var officialUser = await anonUser.LinkCredentialsAsync( Credentials.EmailPassword(email, password));
No exemplo acima, devemos primeiro registrar o novo usuário de e-mail/senha antes de vincular. Se você estiver usando qualquer um dos outros provedores de autenticação, esta etapa será desnecessária. O exemplo a seguir usa a autenticação do Google em vez do EmailPassword:
var anonUser = await app.LogInAsync(Credentials.Anonymous()); var officialUser = await anonUser.LinkCredentialsAsync( Credentials.Google("<google-token>", GoogleCredentialType.AuthCode));