Overview
El Web SDK incluye un objeto cliente que permite gestionar los usuarios asociados a la Proveedor de autenticación de correo electrónico/contraseña.
Registrar una nueva cuenta de usuario
Para registrar un nuevo usuario de correo electrónico/contraseña, llame al registerUser() Método con la dirección de correo electrónico del usuario y la contraseña deseada. 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.
const email = "someone@example.com"; const password = "Pa55w0rd!"; await app.emailPasswordAuth.registerUser({ email, password });
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.
Si el proveedor está configurado para enviar un correo electrónico de confirmación, Atlas App Services envía automáticamente un correo electrónico de confirmación cuando un usuario se registra. El correo electrónico contiene un enlace a la configuración. Email Confirmation URL Con un token válido durante 30 minutos tras el envío del correo electrónico. Si un usuario no recibió el correo electrónico inicial o no hizo clic en el enlace de confirmación a tiempo, puede usar el SDK para reenviar un correo de confirmación.
Como alternativa, si el proveedor está configurado para ejecutar una función de confirmación, App Services ejecuta automáticamente la función Atlas personalizada cuando un usuario se registra. Si la llamada a la función de confirmación personalizada falla, puede usar el SDK para reintentar una función de confirmación de usuario.
Completar una Confirmación de Usuario
Necesita un token y un tokenId válidos para un usuario registrado a fin de 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 Email Confirmation URL en.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, llame al método confirmUser() con los token y tokenId válidos del usuario:
await app.emailPasswordAuth.confirmUser({ token, tokenId });
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
Para reenviar el correo electrónico de confirmación a un usuario, llame al método resendConfirmationEmail() con la dirección de correo electrónico del usuario:
const email = "someone@example.com"; // The user's email address await app.emailPasswordAuth.resendConfirmationEmail({ email });
Reintentar una función de confirmación de usuario
Novedades de laversión Realm: Web v1.4.0
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"; // The user's email address await app.emailPasswordAuth.retryCustomConfirmation({ email });
Restablecer la contraseña de un usuario
Enviar un correo electrónico de restablecimiento de contraseña
Si el proveedor está configurado para enviar un correo electrónico de restablecimiento de contraseña, puede usar el SDK para enviarlo a un usuario. El correo electrónico contiene un enlace al Password Reset URL configurado.
// The user's email address const email = "joe.jasper@example.com"; await app.emailPasswordAuth.sendResetPasswordEmail({ email });
Llamar a una función de restablecimiento de contraseña
Si el proveedor está configurado para ejecutar una función de restablecimiento de contraseña, puede usar el SDK para ejecutarla. Pase un objeto con el correo electrónico del usuario y la nueva contraseña. También puede incluir argumentos adicionales para usar en la función de restablecimiento de contraseña en el backend de 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 );
Completar un restablecimiento de contraseña
Una vez que un usuario solicita un restablecimiento de contraseña, ya sea enviando un correo electrónico de restablecimiento de contraseña o llamando a una función de restablecimiento de contraseña, Realm genera un par de valores únicos token y tokenId que pueden usar para completar el restablecimiento de contraseña dentro 30 de los minutos posteriores a la solicitud inicial.
await app.emailPasswordAuth.resetPassword({ password: "newPassw0rd", token, tokenId, });
Ejemplo
Obtener el token y el TokenID
Si el proveedor utiliza el correo electrónico de restablecimiento de contraseña integrado, token y tokenId se incluyen como parámetros de consulta en la URL de restablecimiento de contraseña. Puede acceder a ellos de la siguiente manera:
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" ); }