Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Administrar usuarios

Gestionar usuarios Email/Password - Java SDK

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.

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

To confirm a newly-created user, pass a confirmation token and tokenId to the confirmUser() or confirmUserAsync() methods of your Realm App's EmailPasswordAuth instance:

// 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.

Para restablecer la contraseña de un usuario en Sync, puede:

  • Enviar un correo electrónico para restablecer la contraseña

  • Run a password reset function

Select your preferred password reset method by going to:

  1. Your App

  2. Authentication

  3. Authentication Providers

  4. Email/Password - and press the EDIT button

To reset a user's password, first send the user a password reset email with sendResetPasswordEmail() or 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")
}
}

Password reset emails contain two values, token and tokenId. To complete the password reset flow, prompt the user to enter a new password and pass the token and tokenId values along with the new password value to your Realm App's EmailPasswordAuth instance's resetPassword() or resetPasswordAsync() methods:

// 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

To access the token and tokenId values sent in the password reset email, you can use a custom password reset email subject containing a deep link.

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.

Es posible que prefieras usar una función personalizada de restablecimiento de contraseña cuando quieras definir tus propios flujos de restablecimiento de contraseña. Por ejemplo, puedes enviar un correo electrónico personalizado para restablecer la contraseña desde un dominio específico o mediante un servicio diferente al correo electrónico.

Tip

For more information on how to define a custom password reset function in your App, see: Run a Password Reset Function.

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

Volver

Custom User Data

En esta página