Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

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

項目一覧

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

Web SDK には、 /パスワード認証プロバイダに関連付けられているユーザーを管理できるクライアント オブジェクトが含まれています。

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

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

注意

新規ユーザーの確認

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

プロバイダーが確認メール を送信するように設定されている場合、Atlas App Services はユーザーが登録すると確認メールを自動的に送信します。 メールには、メールの送信から30分間有効なトークンで構成された Email Confirmation URLへのリンクが含まれています。 ユーザーが最初のメールを受信しなかった場合、または時間内に確認リンクをクリックしなかった場合は、SDK を使用して確認メールを再送信できます。

あるいは、プロバイダーが確認関数 を実行するように構成されている場合、App Services はユーザーが登録するとカスタムAtlas Functionを自動的に実行します。 カスタム確認関数の呼び出しが失敗した場合は、SDK を使用してユーザー確認関数を再試行できます。

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

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

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

登録済みユーザーを確認するには、ユーザーの有効なtokentokenIdを使用してconfirmUser()メソッドを呼び出します。

await app.emailPasswordAuth.confirmUser({ token, tokenId });

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

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

const email = "someone@example.com"; // The user's email address
await app.emailPasswordAuth.resendConfirmationEmail({ email });

バージョン Realm の新機能: Web v1.4.0

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

const email = "someone@example.com"; // The user's email address
await app.emailPasswordAuth.retryCustomConfirmation({ email });

プロバイダーがパスワード リセット メール を送信するように設定されている場合は、SDK を使用してユーザーにパスワード リセット メールを送信できます。 メールには、構成されたPassword Reset URLへのリンクが含まれています。

// The user's email address
const email = "joe.jasper@example.com";
await app.emailPasswordAuth.sendResetPasswordEmail({ email });

プロバイダーがパスワードリセット機能 を実行するように構成されている場合は、SDK を使用して関数を実行できます。 ユーザーのメールと新しいパスワードを含む オブジェクトを渡します。 App Services バックエンドのパスワード リセット機能で使用する追加の引数を含めることもできます。

// The user's email address
const email = "joe.jasper@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
);

ユーザーがパスワード リセット メールを送信する、パスワード リセット機能を呼び出してパスワードのリセットをリクエストすると、Realm は一意のtoken値とtokenId値のペアを生成し、これらを使用して30分以内にパスワードのリセットを完了するために使用できます最初のリクエストの 。

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

トークンとトークン ID の取得

プロバイダーが組み込みのパスワード リセット メールを使用する場合、パスワード リセット URL のクエリ パラメータとしてtokentokenIdが含まれます。 次のように、これらにアクセスできます。

const params = new URLSearchParams(window.location.search);
const token = params.get("token");
const tokenId = params.get("tokenId");
if (!token || !tokenId) {
throw new Error(
"You can only call resetPassword() if the user followed a confirmation email link"
);
}

戻る

ユーザーの認証 - Web SDK