Docs Menu
Docs Home
/ /
Gestión de usuarios

Administrar usuarios con correo electrónico y contraseña - SDK web

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.

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.

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.

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:

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 });

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.

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 });

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 });

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 });

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
);

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"
);
}

Volver

Autenticar un usuario - SDK web