Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

電子メール/パスワードユーザーの管理 - Java SDK

項目一覧

  • 新しいユーザー アカウントの登録
  • 新しいユーザーのメールアドレスの確認
  • ユーザーのパスワードのリセット
  • パスワード リセット メールの送信
  • パスワードリセット機能の実行

アプリでメール/パスワード プロバイダーを有効にしている場合は、クライアント コードから新しいアカウントを登録し、メールアドレスを確認し、ユーザーのパスワードをリセットできます。

新規ユーザーを登録するには、ユーザーが提供したメールとパスワードを、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

同期 でユーザーのパスワードをリセットするには、次のいずれかの方法を実行します。

  • パスワード リセット メールの送信

  • パスワードリセット機能の実行

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

  1. アプリ

  2. Authentication

  3. Authentication Providers

  4. 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")
}
}

パスワード リセット メールには、 tokentokenIdの 2 つの値が含まれています。 パスワードのリセット フローを完了するには、ユーザーに新しいパスワードの入力を求め、 tokentokenIdの値とともに新しいパスワードの値を Realm AppEmailPasswordAuthインスタンスの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")
}
}

戻る

カスタムユーザーデータ