Cuando haya habilitado el Proveedor de correo electrónico/contraseña en su aplicación, puede registrar una nueva cuenta, confirmar una dirección de correo electrónico y restablecer la contraseña de un usuario desde el código de cliente.
Registrar una nueva cuenta de usuario
Para registrar un nuevo usuario, pase un correo electrónico y una contraseña proporcionados por el usuario a los métodos registerUser() o registerUserAsync() de su Realm AppInstancia de EmailPasswordAuth de:
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}") } }
Confirmar la dirección de correo electrónico de un nuevo usuario
Para confirmar un usuario recién creado, pase una confirmación token y tokenId a los métodos confirmUser() o confirmUserAsync() de la App instancia EmailPasswordAuth de su Realm:
// 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
Para acceder a los token tokenId valores y enviados en el correo electrónico de confirmación del usuario, puede utilizar un asunto de correo electrónico de confirmación personalizado que contenga un enlace profundo.
Restablecer la contraseña de un usuario
Para restablecer una contraseña de usuario en Sync, puede:
Enviar un correo electrónico para restablecer la contraseña
Ejecutar una función de restablecimiento de contraseña
Seleccione su método preferido de restablecimiento de contraseña yendo a:
Tu aplicación
Authentication
Authentication Providers
Email/Password - y presione el botón EDIT
Enviar un correo electrónico de restablecimiento de contraseña
Para restablecer la contraseña de un usuario, primero envíele al usuario un correo electrónico de restablecimiento de contraseña con sendResetPasswordEmail() o 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") } }
Los correos electrónicos de restablecimiento de contraseña contienen dos valores: token y. Para completar el proceso, solicite al usuario que introduzca una nueva contraseña y pase los tokenId token tokenId valores y junto con la nueva contraseña a los App métodos resetPassword() o resetPasswordAsync() de la instancia EmailPasswordAuth de su dominio:
// 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
Para acceder a los token tokenId valores y enviados en el correo electrónico de restablecimiento de contraseña, puede utilizar un asunto de correo electrónico de restablecimiento de contraseña personalizado que contenga un enlace profundo.
Ejecutar una función de restablecimiento de contraseña
Al configurar tu aplicación para ejecutar una función de restablecimiento de contraseña, definirás la función que debe ejecutarse al llamar a callResetPasswordFunction() o callResetPasswordFunctionAsync() desde el SDK. Esta función puede aceptar un nombre de usuario, una contraseña y cualquier número de argumentos adicionales. Puedes usar estos argumentos para especificar detalles como las respuestas a las preguntas de seguridad u otras pruebas que el usuario debe superar para restablecer la contraseña correctamente.
Quizás prefiera usar una función de restablecimiento de contraseña personalizada si desea definir sus propios flujos de restablecimiento de contraseña. Por ejemplo, puede enviar un correo electrónico de restablecimiento de contraseña personalizado desde un dominio específico o a través de un servicio distinto del correo electrónico.
Tip
Para obtener más información sobre cómo definir una función de restablecimiento de contraseña personalizada en su aplicación, consulte: Ejecutar una función de restablecimiento de contraseña.
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") } }