Gerenciar usuários de e-mail/senha - SDK da Web
Nesta página
- Visão geral
- 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
- Concluir uma redefinição de senha
Visão geral
O Web SDK inclui um objeto de cliente que permite gerenciar usuários associados aoprovedor de autenticação de e-mail/senhado .
Registrar uma nova conta de usuário
Para registrar um novo usuário de e-mail/senha, ligue para o método registerUser()
com o endereço de e-mail do usuário e a senha desejada. 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.
const email = "someone@example.com"; const password = "Pa55w0rd!"; await app.emailPasswordAuth.registerUser({ email, password });
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.
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 após o envio do e-mail. Se um usuário não recebeu o e-mail inicial ou não clicou no link de confirmação a tempo, você pode usar o SDK para reenviar um e-mail de confirmação.
Alternativamente, se o provedor estiver configurado para executar uma função de confirmação, os App Services executarão automaticamente sua Função Atlas personalizada quando um usuário registrar. Se a chamada para a função de confirmação personalizada falhar, você poderá usar o SDK para tentar novamente uma função de confirmação do usuário.
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, ligue para o método confirmUser()
com o usuário válido token
e tokenId
:
await app.emailPasswordAuth.confirmUser({ token, tokenId });
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
Para reenviar o e-mail de confirmação para um usuário, ligue para o método resendConfirmationEmail()
com o endereço de e-mail do usuário:
const email = "someone@example.com"; // The user's email address await app.emailPasswordAuth.resendConfirmationEmail({ email });
Tentar novamente uma função de confirmação do usuário
Novidades na versão do Realm: Web v1.4.0
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"; // The user's email address await app.emailPasswordAuth.retryCustomConfirmation({ email });
Redefinir a senha de um usuário
Enviar um e-mail de redefinição de senha
Se o provedor estiver configurado para enviar um e-mail de redefinição de senha, você poderá usar o SDK para enviar um e-mail de redefinição de senha para um usuário. O e-mail contém um link para o Password Reset URL configurado.
// The user's email address const email = "joe.jasper@example.com"; await app.emailPasswordAuth.sendResetPasswordEmail({ email });
Ligar para uma função de redefinição de senha
Se o provedor estiver configurado para executar uma função de redefinição de senha, você poderá utilizar o SDK para executar a função. Passe um objeto com o e-mail e a nova senha do usuário. Você também pode incluir argumentos adicionais para usar na função de redefinição de senha no backend dos App Services.
// The user's email address const email = "joe.jasper@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 );
Concluir uma redefinição de senha
Depois que um usuário solicita uma redefinição de senha, enviando um e-mail de redefinição de senha ou chamando uma função de redefinição de senha, o Realm gera um par de valores token
e tokenId
exclusivos que ele pode usar para concluir a redefinição de senha dentro 30 minutos do pedido inicial.
await app.emailPasswordAuth.resetPassword({ password: "newPassw0rd", token, tokenId, });
Exemplo
Obter o Token e TokenID
Se o provedor usar o e-mail de redefinição de senha incorporado, token
e tokenId
serão incluídos como query no URL de redefinição de senha. Você pode acessá-los da seguinte forma:
const params = new URLSearchParams(window.location.search); const token = params.get("token"); const tokenId = params.get("tokenId"); if (!token || !tokenId) { throw new Error( "You can only call resetPassword() if the user followed a confirmation email link" ); }