Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

이메일/비밀번호 사용자 관리 - Java SDK

이 페이지의 내용

  • 새 사용자 계정 등록
  • 신규 사용자의 이메일 주소 확인
  • 사용자 비밀번호 재설정
  • 비밀번호 재설정 이메일 보내기
  • 비밀번호 재설정 함수 실행

앱에서 이메일/비밀번호 제공자 를 활성화하면 새 계정을 등록하고, 이메일 주소 를 확인하고, 클라이언트 코드에서 사용자의 비밀번호를 재설정할 수 있습니다.

새 사용자를 등록하려면 사용자가 제공한 이메일과 비밀번호를 Realm AppEmailPasswordAuth 인스턴스의 RegisterUser() 또는 RegisterUserAsync() 메서드에 전달합니다.

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

새로 생성된 사용자를 확인하려면 확인 tokentokenId 를 Realm AppEmailPasswordAuth 인스턴스 의 verifyUser() 또는 verifyUserAsync() 메서드에 전달합니다.

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

Sync에서 사용자 비밀번호를 재설정하려면 다음 중 하나를 수행하면 됩니다.

  • 비밀번호 재설정 이메일 보내기

  • 비밀번호 재설정 함수 실행

다음으로 이동하여 선호하는 비밀번호 재설정 방법을 선택하세요.

  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 의 두 가지 값이 포함되어 있습니다. 비밀번호 재설정 절차를 완료하려면 사용자에게 새 비밀번호를 입력하라는 메시지를 표시하고 tokentokenId 값을 새 비밀번호 값과 함께 Realm AppEmailPasswordAuth 인스턴스의 resetPassword() 또는 resetPasswordAsync() 메서드에 전달합니다. :

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

비밀번호 재설정 이메일로 전송된 token 및 값에 액세스하려면 tokenId 딥 링크 가 포함된 사용자 지정 비밀번호 재설정 이메일 제목 을 사용할 수 있습니다.

비밀번호 재설정 함수를 실행 하도록 앱을 구성하는 경우 SDK에서 호출ResetPasswordFunction ( ) 또는 호출ResetPasswordFunctionAsync()를 호출할 때 실행되어야 하는 함수를 정의합니다. 이 함수는 사용자 이름, 비밀번호 및 여러 개의 추가 인수를 사용할 수 있습니다. 이러한 인수를 사용하여 사용자가 비밀번호 재설정을 성공적으로 완료하기 위해 전달해야 하는 보안 질문 답변 또는 기타 과제와 같은 세부 정보를 지정할 수 있습니다.

비밀번호 재설정 흐름을 직접 정의하려는 경우 사용자 지정 비밀번호 재설정 함수를 사용하는 것이 더 나을 수 있습니다. 예를 들어 특정 도메인 또는 이메일 이외의 서비스를 통해 사용자 지정 비밀번호 재설정 이메일을 보낼 수 있습니다.

다음도 참조하세요.

앱에서 사용자 지정 비밀번호 재설정 함수를 정의하는 방법에 대한 자세한 내용은 비밀번호 재설정 함수 실행을 참조하세요.

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

돌아가기

사용자 지정 사용자 데이터