Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ /

Gerenciar usuários de e-mail/senha - Java SDK

Nesta página

  • Registrar uma nova conta de usuário
  • Confirmar um endereço de e-mail de novo usuário
  • Redefinir a senha de um usuário
  • Enviar um e-mail de redefinição de senha
  • Executar uma função de redefinição de senha

Depois de ativar oprovedor de e-mail/senha em seu aplicativo, você pode registrar uma nova conta, confirmar um endereço de e-mail e redefinir a senha de um usuário a partir do código do cliente .

Para registrar um novo usuário, passe um e-mail e uma senha fornecidos pelo usuário para os métodos registrarUser() ou registrarUserAsync() da instância EmailPasswordAuth do Realm App:

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

Para confirmar um usuário recém-criado, passe uma confirmação token e tokenId para os métodos confirmUser() ou confirmUserAsync() da instância EmailPasswordAuth do seu Realm App:

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

Dica

Para acessar token os tokenId valores e enviados no e-mail de confirmação do usuário, você pode usar um assunto de e-mail de confirmação personalizado contendo um link detalhado.

Para redefinir uma senha de usuário na sincronização, você pode:

  • Enviar um e-mail de redefinição de senha

  • Executar uma função de redefinição de senha

Selecione seu método preferido de redefinição de senha acessando:

  1. Seu aplicativo

  2. Authentication

  3. Authentication Providers

  4. Email/Password - e pressione o botão EDIT

Para redefinir a senha de um usuário, primeiro envie ao usuário um e-mail de redefinição de senha com sendResetPasswordEmail() ou 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")
}
}

Os e-mails de redefinição de senha contêm dois valores, token e tokenId. Para concluir o fluxo de redefinição de senha, solicite ao usuário que insira uma nova senha e passe os valores token e tokenId junto com o novo valor de senha para os métodos reinício da instância de EmailPasswordAuth do Realm App } :

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

Dica

Para acessar token os tokenId valores e enviados no e-mail de redefinição de senha, você pode usar um assunto de e-mail de redefinição de senha personalizado contendo um link detalhado.

Ao configurar seu aplicativo para executar uma função de redefinição de senha, você definirá a função que deve ser executada ao chamar callResetPasswordFunction() ou callResetPasswordFunctionAsync() do SDK. Esta função pode receber um nome de usuário, uma senha e qualquer número de argumentos adicionais. Você pode usar esses argumentos para especificar detalhes como respostas a perguntas de segurança ou outros desafios que o usuário deve passar para concluir com êxito uma redefinição de senha.

Você pode preferir usar uma função personalizada de redefinição de senha quando quiser definir seus próprios fluxos de redefinição de senha. Por exemplo, você pode enviar um e-mail de redefinição de senha personalizado de um domínio específico ou por meio de um serviço que não seja o e-mail.

Dica

Veja também:

Para obter mais informações sobre como definir uma função de redefinição de senha personalizada em seu aplicativo, consulte: Executar uma função de redefinição de senha.

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

Voltar

Usuário de dados personalizado