メール/パスワードユーザーの管理 - 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 を使用してユーザー確認関数を再試行できます。
ユーザー確認の完了
登録ユーザーの有効なtoken
とtokenId
が必要で、これらを確認してログインできるようにします。 これらの値は、プロバイダーの構成に応じて、異なる場所で使用できます。
プロバイダーが確認メール を送信するように設定されている場合、
token
とtokenId
の値はクエリ パラメータとしてEmail Confirmation URLに含まれます。プロバイダーが確認関数 を実行するように設定されている場合、
token
とtokenId
の値は引数として関数に渡されます。
登録済みユーザーを確認するには、ユーザーの有効なtoken
とtokenId
を使用して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 のクエリ パラメータとしてtoken
とtokenId
が含まれます。 次のように、これらにアクセスできます。
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" ); }