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

Managed usuários de e-mail/senha - Node.js SDK

Nesta página

  • Registrar uma nova conta de usuário
  • Confirmar um endereço de e-mail de novo usuário
  • Conclua uma confirmação de usuário
  • Repetir métodos de confirmação do usuário
  • Reenviar um e-mail de confirmação
  • Tentar novamente uma função de confirmação do usuário
  • Redefinir a senha de um usuário
  • Enviar um e-mail de redefinição de senha
  • Ligar para uma função de redefinição de senha

Para registrar um novo usuário de e-mail/senha, passe o endereço de e-mail do usuário e a senha desejada para EmailPasswordAuth.registerUser(). O endereço de e-mail não deve ser associado a outro usuário de e-mail/senha e a senha deve ter entre 6 e 128 caracteres.

await app.emailPasswordAuth.registerUser({
email: "someone@example.com",
password: "Pa55w0rd!",
});

Observação

Confirmar novos usuários

Você deve confirmar o endereço de e-mail de um novo usuário antes que ele possa fazer login no seu aplicativo.

Os novos usuários devem confirmar que possuem o endereço de e-mail antes de fazer login no seu aplicativo, a menos que o provedor esteja configurado para confirmar automaticamente os novos usuários.

Você precisa de um token e tokenId válidos para um usuário registrado para confirmá-lo e permitir que ele faça login. Esses valores estão disponíveis em locais diferentes, dependendo da configuração do provedor:

  • Se o provedor estiver configurado para enviar um e-mail de confirmação, os valores token e tokenId serão incluídos como parâmetros de consulta no Email Confirmation URL.

  • Se o provedor estiver configurado para executar uma função de confirmação, os valores token e tokenId serão passados para a função como argumentos.

Para confirmar um usuário registrado, passe um token e tokenId válidos para EmailPasswordAuth.confirmUser().

const token = "someToken";
const tokenId = "someTokenId";
try {
await app.emailPasswordAuth.confirmUser({ token, tokenId });
// User email address confirmed.
console.log("Successfully confirmed user.");
} catch (err) {
console.log(`User confirmation failed: ${err}`);
}

O SDK fornece métodos para reenviar e-mails de confirmação do usuário ou tentar novamente métodos de confirmação personalizados.

Se o provedor estiver configurado para enviar um e-mail de confirmação, o Atlas App Services enviará automaticamente um e-mail de confirmação quando um usuário se registrar. O e-mail contém um link para o Email Confirmation URL configurado com um token válido por 30 minutos. Se um usuário não seguir o link e confirmar dentro desse período, ele deverá solicitar um novo e-mail de confirmação.

Para enviar um novo e-mail de confirmação para um usuário, passe seu endereço de e-mail para EmailPasswordAuth.resendConfirmationEmail().

const email = "someone@example.com";
await app.emailPasswordAuth.resendConfirmation({ email });

Para executar novamente sua função de confirmação personalizada, ligue para o método retryCustomConfirmation() com o endereço de e-mail do usuário:

const email = "someone@example.com";
await app.emailPasswordAuth.retryCustomConfirmation({ email });

A redefinição da senha de um usuário é um processo de várias etapas.

  1. Em seu aplicativo cliente, você fornece uma interface do usuário para o usuário redefinir a senha. Em seguida, seu App Services App pode enviar um e-mail ou executar uma função personalizada para confirmar a identidade do usuário.

  2. Após confirmar a identidade do usuário, você pode concluir a solicitação de redefinição de senha.

  3. Após a redefinição de senha ser concluída, o usuário poderá se conectar usando a nova senha.

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

  1. Seu Atlas App Services App

  2. Authentication

  3. Authentication Providers

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

Para enviar e-mails de redefinição de senha para confirmar a identidade do usuário, você deve configurar seu aplicativo para enviar um e-mail de redefinição de senha.

Para iniciar o processo de redefinição de senha, ligue para EmailPasswordAuth.sendResetPasswordEmail() com o e-mail do usuário. O e-mail contém um link para o Password Reset URL configurado. O usuário deve acessar esta URL dentro 30 minutos para confirmar a redefinição.

const email = "someone@example.com";
await app.emailPasswordAuth.sendResetPasswordEmail({ email });

Depois que o usuário acessar o URL a partir do e-mail de redefinição de senha, chame EmailPasswordAuth.resetPassword() com o e-mail do usuário, a nova senha e os token e tokenId fornecidos no URL exclusivo.

await app.emailPasswordAuth.resetPassword({
password: "newPassw0rd",
token,
tokenId,
});

Se o usuário não acessar a URL do e-mail de redefinição de senha dentro de 30 minutos, o token e o tokenId expirarão. Você deve iniciar o processo de redefinição de senha novamente.

Ao configurar seu aplicativo para executar uma função de redefinição de senha, você define a função que deve ser executada quando chamar EmailPasswordAuth.callResetPasswordFunction().

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 você pode usar um serviço diferente do e-mail para confirmar a identidade do usuário.

No lado do App Services, você define a função personalizada de redefinição de senha que é executada quando você chama esse método. Essa função pode retornar um dos três status possíveis:

  • fail

  • pending

  • success

Um status fail é tratado como um erro pelo SDK. O SDK callResetPasswordFunction() não recebe valores de retorno, portanto, não retorna um status pending ou success ao cliente.

Sua função de redefinição de senhaAtlas App Services pode retornar pending se você quiser que o usuário execute alguma etapa adicional para confirmar sua identidade. No entanto, esse valor de retorno não é passado para o callResetPasswordFunction() do SDK, portanto, seu aplicativo cliente deve implementar sua própria lógica para lidar com um status pending .

const email = "someone@example.com";
// The new password to use
const password = "newPassw0rd";
// Additional arguments for the reset function
const args = [];
await app.emailPasswordAuth.callResetPasswordFunction(
{ email, password },
args
);

Sua função no servidor pode enviar um e-mail usando um provedor de e-mail personalizado. Ou você pode usar SMS para confirmar a identidade do usuário por mensagem de texto.

Você tem acesso a um token e tokenId no contexto da função de redefinição de senha do Atlas App Services . Se você passar essas informações pela função de redefinição de senha do Atlas App Services , poderá passar esses valores de volta ao seu aplicativo usando links detalhados ou links universais específicos da plataforma. Em seguida, seu aplicativo cliente pode chamar EmailPasswordAuth.resetPassword() para concluir o fluxo de redefinição de senha.

await app.emailPasswordAuth.resetPassword({
password: "newPassw0rd",
token,
tokenId,
});

Se a função de redefinição de senha doAtlas App Services fizer validação adicional dentro da função ou se você tiver validado a identidade do usuário antes de tentar redefinir a senha, poderá configurar a função do Atlas App Services para retornar success. No entanto, esse valor de retorno não é passado para o callResetPasswordFunction() do SDK, portanto, seu aplicativo cliente deve implementar sua própria lógica para lidar com um status success .

Chamar a função neste exemplo executa todo o processo de redefinição de senha.

const email = "someone@example.com";
// The new password to use
const password = "newPassw0rd";
// Additional arguments for the reset function
const args = [];
await app.emailPasswordAuth.callResetPasswordFunction(
{ email, password },
args
);

Voltar

Metadados do usuário