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" ); }