Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Administrar usuarios

Gestiona usuarios con correo electrónico/contraseña - SDK de Node.js

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

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.

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.

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:

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

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.

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

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

Resetting a user's password is a multi-step process.

  1. En su aplicación de cliente, proporciona una interfaz de usuario para que el usuario restablezca su contraseña. Su App Services App puede enviar un correo electrónico o ejecutar una función personalizada para confirmar la identidad del usuario.

  2. After confirming the user's identity, you can complete the password reset request.

  3. After the password reset is complete, the user can log in using the new password.

Select your preferred password reset method by going to:

  1. Tu aplicación de Atlas App Services

  2. Authentication

  3. Authentication Providers

  4. Email/Password - and press the EDIT button

Para enviar correos de restablecimiento de contraseña y así confirmar la identidad del usuario, se debe configurar la aplicación para enviar un correo 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,
});

If the user does not visit the URL from the password reset email within 30 minutes, the token and tokenId expire. You must begin the password reset process again.

When you configure your app to run a password reset function, you define the function that should run when you call EmailPasswordAuth.callResetPasswordFunction().

Esta función puede tomar un nombre de usuario, una contraseña y cualquier número de argumentos adicionales. Puedes utilizar estos argumentos para especificar detalles como las respuestas a las preguntas de seguridad u otros desafíos que el usuario debe superar para completar con éxito el restablecimiento de contraseña.

Es posible que prefieras usar una función personalizada de restablecimiento de contraseña cuando quieras definir tus propios flujos de restablecimiento de contraseña. Por ejemplo, puede que envíes un correo electrónico personalizado de restablecimiento de contraseña desde un dominio específico. O podría usar un servicio que no sea correo electrónico para confirmar la identidad del usuario.

On the App Services side, you define the custom password reset function that runs when you call this method. That function can return one of three possible statuses:

  • fail

  • pending

  • success

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.

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

Tu función del lado del servidor puede enviar un correo electrónico utilizando un proveedor de correo electrónico personalizado. O puedes 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,
});

If your App Services password reset function does additional validation within the function, or if you have validated the user's identity prior to attempting to reset the password, you may configure the App Services function to return success. However, that return value is not passed to the SDK's callResetPasswordFunction(), so your client app must implement its own logic to handle a success status.

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

Volver

User Metadata

En esta página