ユーザー ID のリンク - .NET SDK
項目一覧
Atlas Device SDK は非推奨です。 詳細については、 の廃止ページを参照してください。
Realm は、ユーザーをアプリにログインするためのの多くの認証プロバイダを提供します。 各プロバイダーは一意のユーザー ID を作成します。 Realm を使用すると、複数の認証情報を 1 つのユーザー ID にマージできます。
例
匿名ログインを提供するアプリケーションを検討してください。 これにより、ユーザーは登録せずにアプリを調べることができます。 ユーザーがアプリケーションを好み、永続的なアカウントを作成します。 SSO またはメール/パスワード認証でサインアップします。 デフォルトでは、これにより新しい User
オブジェクトが作成されます。 アプリは新しい ID を元のユーザーにリンクする必要があります。
LinkCredentialsAsync()を使用してIDをリンクできます。 これにより、認証プロバイダーがログインしたユーザーオブジェクトにリンクされます。
// 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));
上記の例では、リンクする前に、まず新しいメール/パスワードユーザーを登録する必要があります。 他の認証プロバイダを使用している場合、この手順は不要です。 次の例では、EmailPassword の代わりにGoogle 認証を使用します。
var anonUser = await app.LogInAsync(Credentials.Anonymous()); var officialUser = await anonUser.LinkCredentialsAsync( Credentials.Google("<google-token>", GoogleCredentialType.AuthCode));