Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

メール/パスワードユーザーの管理 - .NET SDK

項目一覧

  • Overview
  • 新しいユーザー アカウントの登録
  • 新しいユーザーのメールアドレスの確認
  • 確認メールの再送信
  • ユーザー確認機能の再試行
  • ユーザーのパスワードのリセット
  • パスワード リセット メールの送信
  • パスワードリセット機能の実行

アプリでメール/パスワード プロバイダーを有効にしている場合は、クライアント コードで新しいアカウントの登録、メールアドレスの確認、ユーザーのパスワードのリセットができます。

新規ユーザーを登録するには、ユーザーが提供したメールとパスワードをRegisterUserAsync()メソッドに渡します。

await app.EmailPasswordAuth.RegisterUserAsync(userEmail, "sekrit");

新しく作成されたユーザーを確認するには、確認 tokentokenIdConfirmUserAsync()メソッドに渡します。

注意

モバイルアプリでのディープリンクの使用

モバイル アプリケーションは、ディープ リンクを構成することで、アプリで直接メール確認を取り扱えます Android、 ユニバーサル リンク iOSの 、や URI ハンドラー の場合 ユニバーサルWindowsプラットフォーム(UWP)用。

await app.EmailPasswordAuth.ConfirmUserAsync("<token>", "<token-id>");

確認メールを再送信するには、ユーザーのメールアドレスを指定してResendConfirmationEmailAsync()メソッドを呼び出します。

await app.EmailPasswordAuth.ResendConfirmationEmailAsync("<userEmail>");

カスタム関数を使用して確認メールを再送信するには、ユーザーのメールアドレスを指定してRetryCustomConfirmationAsync()メソッドを呼び出します。

await app.EmailPasswordAuth.RetryCustomConfirmationAsync("<userEmail>");

詳細については、App Services ドキュメントの「確認関数の実行」を参照してください。

ユーザーのパスワードのリセットは複数段階のプロセスです。

  1. クライアント アプリで、ユーザーがパスワードをリセットするための UI を提供します。 その後、App Services App はメールを送信するか、カスタム関数を実行してユーザーの ID を確認できます。

  2. ユーザーの ID を確認した後、パスワード再設定リクエストを完了できます。

  3. パスワードのリセットが完了すると、ユーザーは新しいパスワードを使用してログできます。

次の方法で、希望するパスワード リセット方法を選択します。

  1. Atlas App Services アプリ

  2. Authentication

  3. Authentication Providers

  4. Email/Password - をクリックし、 EDITボタンを押します

ユーザーの ID を確認するためにパスワード リセット メールを送信するには、パスワード リセット メールを送信するようにアプリを設定する必要があります。

パスワード リセット プロセスを開始するには、ユーザーのメールを使用してsendPasswordResetEmailAsync()を呼び出します。 App Services は、一意の URL を含むメールをユーザーに送信します。 ユーザーは30分以内にこの URL にアクセスする必要があります。

await app.EmailPasswordAuth.SendResetPasswordEmailAsync(userEmail);

パスワード リセット メールには、 tokentokenIdの 2 つの値でエンコードされた URL が含まれています。 パスワード リセット フローを完了するには、クライアントで、またはバックエンドでカスタム関数を呼び出してユーザーのパスワードをリセットします。 SDK を使用してパスワードのリセットを完了するには、次の値をResetPasswordAsync()に渡します。

await app.EmailPasswordAuth.ResetPasswordAsync(
myNewPassword, "<token>", "<token-id>");

ユーザーが 30 分以内にパスワード リセット メールの URL にアクセスしない場合、 tokentokenIdは期限切れになります。 パスワードのリセット プロセスを再度開始する必要があります。

注意

パスワード リセット メールで送信されたtoken と の値にアクセスするには、tokenId Android ディープ リンク を使用できます または iOS ユニバーサル リンク。

パスワード リセット機能 を実行するようにアプリを構成するときは、SDK からCallResetPasswordFunctionAsync()を呼び出すときに実行する関数を定義します。 この関数は、ユーザー名、パスワード、および任意の数の追加引数を指定できます。 これらの引数を使用して、セキュリティの質問の回答やその他のチャレンジにユーザーがパスワード リセットを正常に完了するために渡す必要があるものなどの詳細を指定できます。

独自のパスワード リセット フローを定義する場合は、カスタム パスワード リセット機能を使用することをお勧めします。 たとえば、特定のドメインからカスタム パスワード リセット メールを送信できます。 メール以外のサービスを使用してユーザーの ID を確認することもできます。

Atlas App Services 側では、このメソッドを呼び出すときに実行されるカスタム パスワード リセット機能を定義します。 この関数は、次の 3 つのステータスのいずれかを返すことができます。

  • fail

  • pending

  • success

failステータスは SDK によって例外として扱われます。 SDK CallResetPasswordFunctionAsync()は戻り値を取らないため、クライアントにpendingまたはsuccessステータスを返すことはありません。

ユーザーに本人確認を行うために追加の手順を実行したい場合、 App Services のパスワード リセット関数によりpendingが返されることがあります。 ただし、その戻り値は SDK のCallResetPasswordFunctionAsync()に渡されないため、クライアントアプリはpendingステータスを処理するために独自のロジックを実装する必要があります。

await app.EmailPasswordAuth.CallResetPasswordFunctionAsync(
userEmail, myNewPassword);

サーバー側関数により、カスタム メール プロバイダーを使用してメールが送信される場合があります。 SMS などのサービスを使用してユーザーの ID を確認することもできます。

App Services のパスワード リセット関数のコンテキストで、 tokentokenIdにアクセスできます。 App Services のパスワード リセット機能からこの情報を渡す場合、プラットフォーム固有のディープ リンクまたはユニバーサル リンクを使用してこれらの値をアプリに渡すことができます。 次に、クライアント アプリケーションはResetPasswordAsync()を呼び出してパスワード リセット フローを完了できます。

await app.EmailPasswordAuth.ResetPasswordAsync(
myNewPassword, "<token>", "<token-id>");

注意

カスタム パスワード リセット機能から送信されるtokentokenId の値にアクセスするには、次の Android ディープリンク を使用できます: または iOS ユニバーサル リンク。

App Services のパスワード リセット関数が関数内で追加の検証を行う場合、またはパスワードのリセットを試みる前にユーザーの ID を検証した場合は、 successを返すように App Services 関数を構成できます。 ただし、その戻り値は SDK のCallResetPasswordFunctionAsync()に渡されないため、クライアントアプリはsuccessステータスを処理するために独自のロジックを実装する必要があります。

この例では 関数を呼び出すと、パスワード リセット プロセス全体が実行されます。

await app.EmailPasswordAuth.CallResetPasswordFunctionAsync(
userEmail, myNewPassword,
"<security-question-1-answer>",
"<security-question-2-answer>");

戻る

ユーザー メタデータ