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
Registrar uma nova conta de usuário
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.
Confirmar um endereço de e-mail de novo usuário
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.
Conclua uma confirmação de usuário
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
etokenId
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
etokenId
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}`); }
Repetir métodos de confirmação do usuário
O SDK fornece métodos para reenviar e-mails de confirmação do usuário ou tentar novamente métodos de confirmação personalizados.
Reenviar um e-mail de confirmação
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 });
Tentar novamente uma função de confirmação do usuário
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 });
Redefinir a senha de um usuário
A redefinição da senha de um usuário é um processo de várias etapas.
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.
Após confirmar a identidade do usuário, você pode concluir a solicitação de redefinição de senha.
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:
Seu Atlas App Services App
Authentication
Authentication Providers
Email/Password - e pressione o botão EDIT
Enviar um e-mail de redefinição de senha
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.
Ligar para uma função de redefinição de senha
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.
Caso pendente do lado do servidor
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, });
Caso de sucesso do servidor
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 );