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
/ /
Authenticate & Manage Users

Crear un usuario de la aplicación

Atlas App Services ofrece varios proveedores de autenticación para iniciar sesión en la aplicación. Para la mayoría de los proveedores, App Services crea automáticamente una cuenta de usuario la primera vez que un usuario se autentica a través del proveedor. La única excepción es Autenticación de usuario por correo electrónico/contraseña, que requiere registrar y confirmar un usuario antes de que éste pueda autenticarse.

Tip

Apple Account Deletion Requirements

Cuando inicia sesión por primera vez con un proveedor de autenticación, App Services crea un objeto de usuario que contiene un ID de identidad único y metadatos específicos del proveedor sobre el usuario.

Un único objeto de usuario puede tener más de una identidad. Puedes usar los SDK de Realm para vincular identidades a cuentas de usuario existentes. Esto permite a los usuarios iniciar sesión en una sola cuenta con más de un proveedor. Para más información, consulta la documentación sobre vinculación de identidades para tu SDK preferido:

Cuando uses la autenticación de usuario por correo electrónico/contraseña, primero debes registrar un usuario, lo que crea el objeto de usuario. Puedes registrar usuarios en tu aplicación cliente usando el SDK de tu elección o puedes crear manualmente usuarios por correo electrónico/contraseña.

Después de registrar al usuario, debe confirmarlo antes de que pueda autenticarse.

Cada SDK ofrece una API que permite registrar un usuario con correo electrónico y contraseña. Tras registrarlo, debe confirmarlo para que pueda autenticarse. Para ver ejemplos de código que muestran cómo administrar usuarios con correo electrónico y contraseña en la aplicación cliente, consulte la documentación de los SDK de Realm:

Puedes crear un nuevo usuario de correo electrónico/contraseña desde la Interfaz de usuario Realm, la CLI o la API de administración. Los usuarios creados manualmente omiten cualquier flujo de confirmación de usuario configurado.

Tip

La creación manual de un usuario puede ser útil para probar y depurar su aplicación en desarrollo.

  1. Seleccionar App Users desde el menú de navegación de la izquierda.

  2. Haga clic en el botón Add New User.

  3. Especifique una dirección de correo electrónico y una contraseña para el nuevo usuario.

    Nota

    El proveedor de autenticación de correo electrónico/contraseña requiere que las contraseñas tengan entre 6 y 128 caracteres.

  4. Haga clic en Create.

Nota

También puedes crear claves API que las aplicaciones usen para conectarse a tu app. Aunque las claves API no están asociadas a un solo usuario, la pestaña Users las muestra. Para obtener más información sobre las claves API, consulta Autenticación de claves API.

Para crear un nuevo usuario de correo electrónico/contraseña, llame al appservices users create y especifique --type=email. La CLI le solicitará su ID de aplicación, así como el correo electrónico y la contraseña del nuevo usuario.

appservices users create --type=email

También puedes especificar los argumentos cuando llamas al programa:

appservices users create --type=email \
--app=<Your App ID> \
--email=<User's Email Address> \
--password=<User's Password>

Nota

El proveedor de autenticación de correo electrónico/contraseña requiere que las contraseñas tengan entre 6 y 128 caracteres.

Para crear un nuevo usuario de correo electrónico/contraseña, cree una solicitud POST con el siguiente formato. Debe especificar las credenciales del usuario en el cuerpo de la solicitud y el ID de grupo y de la aplicación en la URL de la solicitud.

curl --request POST \
--header 'Authorization: Bearer <access_token>' \
--data '{ "email": "<string>", "password": "<string>" }' \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/users

Nota

El proveedor de autenticación de correo electrónico/contraseña requiere que las contraseñas tengan entre 6 y 128 caracteres.

Debe confirmar la dirección de correo electrónico de los nuevos usuarios de correo electrónico/contraseña antes de que puedan iniciar sesión en App Services. El método exacto de confirmación depende de la configuración de su proveedor, pero normalmente implica un protocolo de enlace entre el usuario y su aplicación. Puede obtener más información sobre la confirmación de usuarios de correo electrónico/contraseña en Confirmación de correo electrónico/contraseña.

Sometimes, users are unable to complete the confirmation process. For example:

  • An overzealous spam filter might block App Services email confirmation emails.

  • Un bloqueador web o proxy podría impedir que un usuario active la función SDK del cliente confirmUser a través de la aplicación cliente.

  • An implementation error could cause the client application's user confirmation page to fail for specific use cases.

Para ayudarte a resolver casos como este, puedes confirmar usuarios manualmente usando la Interfaz de usuario Realm o la API de administrador:

Para confirmar un usuario con correo electrónico/contraseña pendiente en la interfaz de usuario:

  1. Seleccione App Users en el menú de navegación de la izquierda.

  2. En la pestaña Users, seleccione el botón PENDING.

  3. Busca al usuario en la lista y haz clic en la elipsis (...).

  4. Seleccione la opción Confirm User del menú contextual que aparece.

  5. Si la operación se realiza correctamente, el banner en la parte superior de la consola de administración de App Services debería mostrar un mensaje de confirmación. El User Status del usuario cambia de Pending Confirmation a Pending User Login.

Un usuario confirmado manualmente continúa apareciendo en la lista de usuarios PENDING hasta que inicia sesión en su aplicación por primera vez, momento en el cual App Services lo mueve a la lista de usuarios confirmados y cambia su User Status a confirmed.

Para confirmar un usuario con correo electrónico/contraseña pendiente mediante la API de administración, cree una solicitud POST con el siguiente formato. Debe especificar el ID del grupo, el ID de la aplicación y la dirección de correo electrónico.

curl --request POST \
--header 'Authorization: Bearer <access_token>' \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/user_registrations/by_email/<email>/confirm

Algunas circunstancias pueden provocar flujos de trabajo de confirmación de usuario de correo electrónico/contraseña incompletos:

  • Un correo electrónico es captado por un filtro de spam, no se entrega debido a un bug o es borrado por accidente por un usuario potencial de aplicación Services.

  • Una función de confirmación personalizada no puede comunicarse con un usuario no confirmado debido a un error o descuido.

  • Un usuario no confirmado olvidó visitar su enlace de confirmación dentro de los 30 minutos posteriores a la recepción de sus tokens y estos caducaron.

Los usuarios atrapados en esta situación aparecen atascados en un estado no confirmado. Dado que una cuenta existente tiene su correo electrónico registrado, los usuarios no pueden crear una nueva cuenta con la misma dirección de correo electrónico. Además, no pueden iniciar sesión en una cuenta que no esté confirmada.

Applications that use the built-in email confirmation service of App Services can use the resendConfirmationEmail Client SDK method to send a new email with a new confirmation link to the user, allowing them to confirm their account and log in. Calling this method will result in an error by any application using a confirmation flow other than send a confirmation email.

No existe un método específico para volver a ejecutar una función de confirmación personalizada. En su lugar, App Services cuenta con un método para activar la repetición del flujo de trabajo de confirmación de usuario de correo electrónico/contraseña actual. Puede volver a ejecutar manualmente el flujo de confirmación de usuario seleccionado mediante la interfaz de usuario de App Services o la API de administración de App Services:

Para volver a ejecutar el flujo de trabajo de confirmación para un usuario en la Interfaz de Usuario:

  1. Seleccione App Users en el menú de navegación de la izquierda.

  2. En la pestaña Users, seleccione el botón PENDING.

  3. Busca al usuario en la lista y haz clic en la elipsis (...).

  4. Seleccione la opción Run user confirmation del menú contextual que aparece.

  5. Seleccione el botón Run User Confirmation en el cuadro de diálogo que aparece.

  6. Si la operación es exitosa, el banner en la parte superior de la consola administrativa de Servicios de aplicación debería mostrar un mensaje de confirmación. El User Status del usuario cambia de Pending Confirmation a Pending User Login. Una vez que el usuario inicie sesión, se trasladará automáticamente a la lista de usuarios activos.

Si la repetición falla o los tokens del usuario caducan nuevamente, puede volver a ejecutar la función de confirmación tantas veces como sea necesario.

Para volver a ejecutar el flujo de confirmación para un usuario utilizando la API de administración, crea una solicitud POST en el siguiente formato. Debe especificar el ID de grupo, el ID de la aplicación y la dirección de correo electrónico.

curl --request POST \
--header 'Authorization: Bearer <access_token>' \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/<groupId>/apps/<appId>/user_registrations/by_email/<email>/run_confirm
  • Para todos los proveedores, excepto para la autenticación por correo electrónico y contraseña, App Services crea automáticamente un objeto de usuario la primera vez que un usuario se autentica.

  • Puedes iniciar sesión en una sola cuenta con más de un proveedor utilizando los SDK de Realm para vincular identidades.

  • El proveedor de autenticación Email/Password requiere que los usuarios se creen una cuenta la primera vez que se conecten a tu aplicación.

  • Los usuarios con correo electrónico y contraseña deben confirmarse manualmente a través de la interfaz de usuario de App Services o la API de administración.

  • Los usuarios atrapados en un flujo de trabajo de confirmación de correo electrónico/contraseña incompleto deben volver a ejecutar la confirmación a través de la interfaz de usuario de App Services o la API de administración.

Volver

Authenticate & Manage Users

En esta página