Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

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

項目一覧

  • 新しいユーザー アカウントの登録
  • 新しいユーザーのメールアドレスの確認
  • ユーザー確認の完了
  • ユーザー確認方法の再試行
  • 確認メールの再送信
  • ユーザー確認機能の再試行
  • ユーザーのパスワードのリセット
  • パスワード リセット メールの送信
  • パスワード リセット機能の呼び出し

新しいメール/パスワード ユーザーを登録するには、ユーザーのメールアドレスとご希望のパスワードを EmailPasswordAuth.registerUser()に渡します。 メールアドレスは別のメールまたはパスワードユーザーと関連付けることはできず、パスワードは6 128文字から 文字の間である必要があります。

await app.emailPasswordAuth.registerUser({
email: "someone@example.com",
password: "Pa55w0rd!",
});

注意

新規ユーザーの確認

プロバイダーが新規ユーザーを自動的に確認するように設定されていない限り、新規ユーザーはアプリにログインする前に自分のメールアドレスを確認する必要があります。

登録ユーザーの有効な tokentokenIdが必要であり、これらを確認してログインできるようにします。 これらの値は、プロバイダーの構成に応じて、異なる場所で使用できます。

  • プロバイダーが確認メール を送信するように設定されている場合、 tokentokenIdの値はクエリ パラメータとして Email Confirmation URLに含まれます。

  • プロバイダーが確認関数 を実行するように設定されている場合、 tokentokenIdの値は引数として関数に渡されます。

登録済みユーザーを確認するには、有効なtokentokenIdEmailPasswordAuth.confirmUser() に渡します。

const token = "someToken";
const tokenId = "someTokenId";
try {
await app.emailPasswordAuth.confirmUser({ token, tokenId });
// User email address confirmed.
console.log("Successfully confirmed user.");
} catch (err) {
console.log(`User confirmation failed: ${err}`);
}

SDK は、ユーザー確認のメールを再送信したり、カスタム確認方法を再試行したりする方法を提供します。

プロバイダーが確認メール を送信するように設定されている場合、Atlas App Services はユーザーが登録すると確認メールを自動的に送信します。 メールには、 30分間有効なトークンを使用して構成されたEmail Confirmation URLへのリンクが含まれています。 ユーザーが期間内にリンクに従って確認しない場合は、新しい確認メールをリクエストする必要があります。

ユーザーに新しい確認メールを送信するには、ユーザーのメールアドレスをEmailPasswordAuth.resendConfirmationEmail() に渡します。

const email = "someone@example.com";
await app.emailPasswordAuth.resendConfirmation({ email });

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

const email = "someone@example.com";
await app.emailPasswordAuth.retryCustomConfirmation({ email });

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

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

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

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

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

  1. Atlas App Services アプリ

  2. Authentication

  3. Authentication Providers

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

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

パスワード リセット プロセスを開始するには、ユーザーのメールを指定してEmailPasswordAuth.sendResetPasswordEmail()を呼び出します。 メールには、構成されたPassword Reset URLへのリンクが含まれています。 ユーザーは30分以内にこの URL にアクセスする必要があります。

const email = "someone@example.com";
await app.emailPasswordAuth.sendResetPasswordEmail({ email });

ユーザーがパスワード リセット メールの URL にアクセスした後、ユーザーのメール、新しいパスワード、一意の URL に指定されたtokentokenIdを使用して、 EmailPasswordAuth.resetPassword()を呼び出します。

await app.emailPasswordAuth.resetPassword({
password: "newPassw0rd",
token,
tokenId,
});

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

パスワードリセット機能 を実行するようにアプリを構成するときは、 EmailPasswordAuth.colResetPasswordFunction() を呼び出すときに実行する関数を定義します。

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

独自のパスワード リセット フローを定義する場合は、カスタム パスワード リセット機能を使用することをお勧めします。 For example, you might send a custom password reset email from a specific domain. または、メール以外のサービスを使用してユーザーの ID を確認することもできます。

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

  • fail

  • pending

  • success

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

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

const email = "someone@example.com";
// The new password to use
const password = "newPassw0rd";
// Additional arguments for the reset function
const args = [];
await app.emailPasswordAuth.callResetPasswordFunction(
{ email, password },
args
);

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

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

await app.emailPasswordAuth.resetPassword({
password: "newPassw0rd",
token,
tokenId,
});

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

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

const email = "someone@example.com";
// The new password to use
const password = "newPassw0rd";
// Additional arguments for the reset function
const args = [];
await app.emailPasswordAuth.callResetPasswordFunction(
{ email, password },
args
);

戻る

ユーザー メタデータ