Registrar una nueva cuenta de usuario
Para registrar un nuevo usuario de correo electrónico/contraseña, pase la dirección de correo electrónico del usuario y la contraseña deseada a EmailPasswordAuth.registerUser(). La dirección de correo electrónico no debe estar asociada a otro usuario de correo electrónico/contraseña, y la contraseña debe tener entre 6 y 128 caracteres.
await app.emailPasswordAuth.registerUser({ email: "someone@example.com", password: "Pa55w0rd!", });
Nota
Confirmar nuevos usuarios
Debes confirmar la dirección de correo electrónico de un nuevo usuario antes de que pueda iniciar sesión en tu aplicación.
Confirmar la dirección de correo electrónico de un nuevo usuario
Los nuevos usuarios deben confirmar que poseen su dirección de correo electrónico antes de poder iniciar sesión en su aplicación, a menos que el proveedor esté configurado para confirmar automáticamente a los nuevos usuarios.
Completar una Confirmación de Usuario
Necesitas una válida token y tokenId para un usuario registrado para confirmarlo y permitirle iniciar sesión. Estos valores están disponibles en diferentes lugares según la configuración del proveedor:
Si el proveedor está configurado para enviar un correo electrónico de confirmación, los
tokentokenIdvalores y se incluyen como parámetros de consulta en el Email Confirmation URL.Si el proveedor está configurado para ejecutar una función de confirmación, los
tokentokenIdvalores y se pasan a la función como argumentos.
Para confirmar un usuario registrado, pase un token y un válidos tokenId a 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}`); }
Reintentar métodos de confirmación de usuario
El SDK proporciona métodos para volver a enviar correos electrónicos de confirmación de usuario o reintentar métodos de confirmación personalizados.
Reenviar un correo electrónico de confirmación
Si el proveedor está configurado para enviar un correo electrónico de confirmación, Atlas App Services enviará automáticamente un correo electrónico de confirmación cuando un usuario se registre. El correo electrónico contiene un enlace a la configuración Email Confirmation URL con un token válido durante 30 minutos. Si un usuario no sigue el enlace y lo confirma dentro de ese periodo, debe solicitar un nuevo correo electrónico de confirmación.
Para enviar un nuevo correo electrónico de confirmación a un usuario, pase su dirección de correo electrónico a EmailPasswordAuth.resendConfirmationEmail().
const email = "someone@example.com"; await app.emailPasswordAuth.resendConfirmation({ email });
Reintentar una función de confirmación de usuario
Para volver a ejecutar su función de confirmación personalizada, llame al retryCustomConfirmation() método con la dirección de correo electrónico del usuario:
const email = "someone@example.com"; await app.emailPasswordAuth.retryCustomConfirmation({ email });
Restablecer la contraseña de un usuario
Restablecer la contraseña de un usuario es un proceso de varios pasos.
En tu aplicación cliente, proporcionas una interfaz de usuario para que el usuario restablezca su contraseña. Tu aplicación de App Services puede enviar un correo electrónico o ejecutar una función personalizada para confirmar la identidad del usuario.
Después de confirmar la identidad del usuario, puede completar la solicitud de restablecimiento de contraseña.
Una vez completado el restablecimiento de la contraseña, el usuario puede iniciar sesión con la nueva contraseña.
Seleccione su método preferido de restablecimiento de contraseña yendo a:
Su aplicación Atlas App Services
Authentication
Authentication Providers
Email/Password - y presione el botón EDIT
Enviar un correo electrónico de restablecimiento de contraseña
Para enviar correos electrónicos de restablecimiento de contraseña para confirmar la identidad del usuario, debe configurar su aplicación para enviar un correo electrónico de restablecimiento de contraseña.
Para iniciar el proceso de restablecimiento de contraseña, ejecute EmailPasswordAuth.sendResetPasswordEmail() con el correo electrónico del usuario. El correo electrónico contiene un enlace a la Password Reset URL URL configurada. El usuario debe visitar esta URL en un 30 plazo de minutos para confirmar el restablecimiento.
const email = "someone@example.com"; await app.emailPasswordAuth.sendResetPasswordEmail({ email });
Después de que el usuario haya visitado la URL del correo electrónico de restablecimiento de contraseña, llame a EmailPasswordAuth.resetPassword() con el correo electrónico del usuario, la nueva contraseña y los token y tokenId proporcionados en la URL única.
await app.emailPasswordAuth.resetPassword({ password: "newPassw0rd", token, tokenId, });
Si el usuario no visita la URL del correo electrónico de restablecimiento de contraseña en 30 minutos, los token y tokenId caducarán. Debe reiniciar el proceso de restablecimiento de contraseña.
Llamar a una función de restablecimiento de contraseña
Cuando configura su aplicación para ejecutar una función de restablecimiento de contraseña, define la función que debe ejecutarse cuando llama a EmailPasswordAuth.callResetPasswordFunction().
Esta función puede aceptar un nombre de usuario, una contraseña y cualquier número de argumentos adicionales. Puede usar estos argumentos para especificar detalles como las respuestas a preguntas de seguridad u otros desafíos que el usuario debe superar para restablecer su contraseña.
Quizás prefiera usar una función de restablecimiento de contraseña personalizada si desea definir sus propios flujos de restablecimiento de contraseña. Por ejemplo, podría enviar un correo electrónico de restablecimiento de contraseña personalizado desde un dominio específico. O podría usar un servicio distinto del correo electrónico para confirmar la identidad del usuario.
En App Services, define la función de restablecimiento de contraseña personalizada que se ejecuta al llamar a este método. Esta función puede devolver uno de tres estados posibles:
failpendingsuccess
Un estado fail se considera un error por el SDK. El SDK callResetPasswordFunction() no toma valores de retorno, por lo que no devuelve un estado pending o success al cliente.
Caso pendiente del lado del servidor
La función de restablecimiento de contraseña de App Services puede devolver pending si desea que el usuario realice algún paso adicional para confirmar su identidad. Sin embargo, este valor de retorno no se pasa al del callResetPasswordFunction() SDK, por lo que la aplicación cliente debe implementar su propia lógica para gestionar un pending estado.
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 );
Su función del servidor podría enviar un correo electrónico mediante un proveedor de correo electrónico personalizado. O bien, podría usar SMS para confirmar la identidad del usuario mediante un mensaje de texto.
Tienes acceso a token y tokenId en el contexto de la función de restablecimiento de contraseña de App Services. Si pasas esta información desde la función de restablecimiento de contraseña de App Services, puedes devolver estos valores a tu aplicación mediante enlaces profundos específicos de la plataforma o enlaces universales. Luego, tu aplicación cliente puede llamar a EmailPasswordAuth.resetPassword() para completar el proceso de restablecimiento de contraseña.
await app.emailPasswordAuth.resetPassword({ password: "newPassw0rd", token, tokenId, });
Caso de éxito del lado del servidor
Si la función de restablecimiento de contraseña de App Services realiza una validación adicional dentro de la función, o si ya validó la identidad del usuario antes de intentar restablecer la contraseña, puede configurar la función de App Services para que success devuelva. Sin embargo, este valor de retorno no se pasa al del callResetPasswordFunction() SDK, por lo que la aplicación cliente debe implementar su propia lógica para gestionar un success estado.
Llamar a la función en este ejemplo realiza todo el proceso de restablecimiento de contraseña.
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 );