앱에서 이메일/비밀번호 제공자 를 활성화하면 새 계정을 등록하고, 이메일 주소 를 확인하고, 클라이언트 코드에서 사용자의 비밀번호를 재설정할 수 있습니다.
새 사용자 계정 등록
새 사용자를 등록하려면 사용자가 제공한 이메일과 비밀번호를   Realm App 의 EmailPasswordAuth 인스턴스의 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}")     } } 
신규 사용자의 이메일 주소 확인
새로 생성된 사용자를 확인하려면 확인 token 및 tokenId   를 Realm App 의 EmailPasswordAuth 인스턴스 의 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}")     } } 
팁
사용자 확인 이메일 에 전송된 token 및 값에 액세스 tokenId 하려면 딥 링크가 포함된 사용자 지정 확인 이메일 제목을 사용할 수 있습니다.
사용자 비밀번호 재설정
Sync에서 사용자 비밀번호를 재설정하려면 다음 중 하나를 수행하면 됩니다.
- 비밀번호 재설정 이메일 보내기 
- 비밀번호 재설정 함수 실행 
다음으로 이동하여 선호하는 비밀번호 재설정 방법을 선택하세요.
- 내 앱 
- 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 의 두 가지 값이 포함되어 있습니다. 비밀번호 재설정 절차를 완료하려면 사용자에게 새 비밀번호를 입력하라는 메시지를 표시하고 token 및 tokenId 값을 새 비밀번호 값과 함께 Realm App 의 EmailPasswordAuth 인스턴스의 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")     } }