이메일/비밀번호 사용자 관리 - Java SDK
앱에서 이메일/비밀번호 제공자 를 활성화하면 새 계정을 등록하고, 이메일 주소 를 확인하고, 클라이언트 코드에서 사용자의 비밀번호를 재설정할 수 있습니다.
새 사용자 계정 등록
새 사용자를 등록하려면 사용자가 제공한 이메일과 비밀번호를 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") } }