アプリでメール/パスワード プロバイダーを有効にしている場合は、クライアント コードから新しいアカウントを登録し、メールアドレスを確認し、ユーザーのパスワードをリセットできます。
新しいユーザー アカウントの登録
新規ユーザーを登録するには、ユーザーが提供したメールとパスワードを、Realm の EmailPasswordAuth インスタンスの registerUser () メソッドまたは registerUserAsync()App メソッドに渡します。
app.getEmailPassword().registerUserAsync(email, password, it -> {     if (it.isSuccess()) {         Log.i("EXAMPLE", "Successfully registered user.");     } else {         Log.e("EXAMPLE", "Failed to register user: " + it.getError().getErrorMessage());     } }); 
app.emailPassword.registerUserAsync(email, password) {     if (it.isSuccess) {         Log.i("EXAMPLE","Successfully registered user.")     } else {         Log.e("EXAMPLE","Failed to register user: ${it.error}")     } } 
新しいユーザーのメールアドレスの確認
新しく作成されたユーザーを確認するには、Realm の EmailPasswordAuth インスタンスのconfirmUser ( ) メソッドまたは confirmUserAsync()token tokenIdメソッドに確認 とApp を渡します。
// token and tokenId are query parameters in the confirmation // link sent in the confirmation email. app.getEmailPassword().confirmUserAsync(token, tokenId, it -> {     if (it.isSuccess()) {         Log.i("EXAMPLE", "Successfully confirmed new user.");     } else {         Log.e("EXAMPLE", "Failed to confirm user: " + it.getError().getErrorMessage());     } }); 
// token and tokenId are query parameters in the confirmation // link sent in the confirmation email. app.emailPassword.confirmUserAsync(token, tokenId) {     if (it.isSuccess) {         Log.i("EXAMPLE", "Successfully confirmed new user.")     } else {         Log.e("EXAMPLE", "Failed to register user: ${it.error}")     } } 
Tip
ユーザー確認メールで送信される tokenとtokenId の値にアクセスするには、ディープ リンクを含むカスタム確認メールの件名を使用できます。
ユーザーのパスワードのリセット
同期 でユーザーのパスワードをリセットするには、次のいずれかの方法を実行します。
- パスワード リセット メールの送信 
- パスワードリセット機能の実行 
次の方法で、希望するパスワード リセット方法を選択します。
- アプリ 
- Authentication 
- Authentication Providers 
- Email/Password - をクリックし、 EDITボタンを押します 
パスワード リセット メールの送信
ユーザーのパスワードをリセットするには、まずsendResetPasswordEmail()またはsendResetPasswordEmailAsync()を使用してユーザーにパスワード リセットのメールを送信します。
app.getEmailPassword().sendResetPasswordEmailAsync(email, it -> {     if (it.isSuccess()) {         Log.i("EXAMPLE", "Successfully sent the user a reset password link to " + email);     } else {         Log.e("EXAMPLE", "Failed to send the user a reset password link to " + email + ": " + it.getError().getErrorMessage());     } }); 
app.emailPassword.sendResetPasswordEmailAsync(email) {     if (it.isSuccess) {         Log.i("EXAMPLE", "Successfully sent the user a reset password link to $email")     } else {         Log.e("EXAMPLE", "Failed to send the user a reset password link to $email: $it.error")     } } 
パスワード リセット メールには、 tokenとtokenIdの 2 つの値が含まれています。 パスワードのリセット フローを完了するには、ユーザーに新しいパスワードの入力を求め、 tokenとtokenIdの値とともに新しいパスワードの値を Realm AppのEmailPasswordAuthインスタンスのdeletePassword () メソッドまたはreplacePasswordAsync()メソッドに渡します。 :
// token and tokenId are query parameters in the confirmation // link sent in the password reset email. app.getEmailPassword().resetPasswordAsync(token, tokenId, newPassword, it -> {     if (it.isSuccess()) {         Log.i("EXAMPLE", "Successfully updated password for user.");     } else {         Log.e("EXAMPLE", "Failed to reset user's password: " + it.getError().getErrorMessage());     } }); 
// token and tokenId are query parameters in the confirmation // link sent in the password reset email. app.emailPassword.resetPasswordAsync(token, tokenId, newPassword) {     if (it.isSuccess) {         Log.i("EXAMPLE", "Successfully updated password for user.")     } else {         Log.e("EXAMPLE", "Failed to reset user's password: $it.error")     } } 
Tip
パスワード リセットメールで送信された tokenと の値にアクセスするには、ディープtokenId リンクを含むカスタム パスワード リセットメールの件名を使用できます。
パスワードリセット機能の実行
パスワード リセット機能 を実行するようにアプリを構成するときに、SDK から CallResetPasswordFunction ()またはCallResetPasswordFunctionAsync( ) を呼び出すときに実行する関数を定義します。 この関数は、ユーザー名、パスワード、および任意の数の追加引数を指定できます。 これらの引数を使用して、セキュリティの質問の回答やその他のチャレンジにユーザーがパスワード リセットを正常に完了するために渡す必要があるものなどの詳細を指定できます。
独自のパスワード リセット フローを定義する場合は、カスタム パスワード リセット機能を使用することをお勧めします。 たとえば、特定のドメインからやメール以外のサービスを通じてカスタム パスワード リセット メールを送信できます。
Tip
アプリ内でカスタム パスワード リセット機能を定義する方法の詳細については、「パスワード リセット機能の実行 」を参照してください。
String newPassword = "newFakePassword"; String[] args = {"security answer 1", "security answer 2"}; app.getEmailPassword().callResetPasswordFunctionAsync(email, newPassword, args, it -> {     if (it.isSuccess()) {         Log.i("EXAMPLE", "Successfully reset the password for" + email);     } else {         Log.e("EXAMPLE", "Failed to reset the password for" + email + ": " + it.getError().getErrorMessage());     } }); 
val newPassword = "newFakePassword" val args = arrayOf("security answer 1", "security answer 2") app.emailPassword.callResetPasswordFunctionAsync(email, newPassword, args) {     if (it.isSuccess) {         Log.i("EXAMPLE", "Successfully reset the password for $email")     } else {         Log.e("EXAMPLE", "Failed to reset the password for $email: $it.error")     } }