链接用户身份 - .NET SDK
在此页面上
Atlas Device SDK 已弃用。 有关详细信息,请参阅弃用页面。
Realm提供许多身份验证提供程序,用于将用户日志到您的应用。 每个提供商都会创建一个唯一的用户身份。 Realm允许您将多个档案合并为一个用户凭证。
例子
考虑一个提供匿名登录的应用程序。 这样,用户无需注册即可探索该应用。 如果用户喜欢该应用程序,他们就会创建永久帐户。 他们使用 SSO 或电子邮件/密码身份验证进行注册。 默认情况下,这会创建一个新的 User
对象。 应用程序必须将新身份与原始用户关联。
您可以使用LinkCredentialsAsync()链接身份。 这会将身份验证提供者链接到已登录的User对象。
// 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));
在上面的示例中,我们必须先注册新的电子邮件/密码用户,然后才能链接。 如果您正在使用任何其他身份验证提供程序,则无需执行此步骤。 以下示例使用Google身份验证而不是 EmailPassword:
var anonUser = await app.LogInAsync(Credentials.Anonymous()); var officialUser = await anonUser.LinkCredentialsAsync( Credentials.Google("<google-token>", GoogleCredentialType.AuthCode));