Overview
El Web SDK incluye un objeto cliente que permite gestionar los usuarios asociados a la Email/Password authentication provider.
Register a New User Account
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
Confirm New Users
Debes confirmar la dirección de correo electrónico de un nuevo usuario antes de que pueda iniciar sesión en tu aplicación.
Confirm a New User's Email Address
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.
Alternatively, if the provider is configured to run a confirmation function, App Services automatically runs your custom Atlas Function when a user registers. If the call to the custom confirmation function fails, you can use the SDK to retry a user confirmation function.
Completa una confirmación de usuario
Necesitas un token y tokenId válidos para un usuario registrado para poder confirmarlos y permitirles 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.
To confirm a registered user, call the confirmUser() method with the user's valid token and tokenId:
await app.emailPasswordAuth.confirmUser({ token, tokenId });
Retry User Confirmation Methods
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 });
Retry a User Confirmation Function
New in version 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 });
Reset a User's Password
Send a Password Reset Email
If the provider is configured to send a password reset email, you can use the SDK to send a password reset email to a user. The email contains a link to the configured Password Reset URL.
// The user's email address const email = "joe.jasper@example.com"; await app.emailPasswordAuth.sendResetPasswordEmail({ email });
Call a Password Reset Function
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
Once a user requests a password reset, either by sending a password reset email or calling a password reset function, Realm generates a pair of unique token and tokenId values that they can use to complete the password reset within 30 minutes of the initial request.
await app.emailPasswordAuth.resetPassword({ password: "newPassw0rd", token, tokenId, });
Ejemplo
Obtener el token y el TokenID
If the provider uses the built-in password reset email, the token and tokenId are included as query parameters in the password reset URL. You can access them like so:
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" ); }