Un disparador de autenticación se activa cuando un usuario interactúa con un proveedor de autenticación. Puede usar disparadores de autenticación para implementar la gestión avanzada de usuarios. Algunos usos incluyen:
Almacenamiento de nuevos datos de usuario en su clúster vinculado
Mantener la integridad de los datos al eliminar un usuario
Llamar a un servicio con la información de un usuario cuando inicia sesión.
Crear un disparador de autenticación
Para abrir la pantalla de configuración del activador de autenticación en la interfaz de usuario de Atlas App Services, haga clic en Triggers En el menú de navegación de la izquierda, haga clic en Create a Trigger y luego seleccione la pestaña Authentication junto a Trigger Type.
Configure el disparador y luego haga clic en Save en la parte inferior de la página para agregarlo a su borrador de implementación actual.

Para crear un activador de autenticación con la CLI de App Services:
Agregue un archivo de configuración de activador de autenticación al
triggerssubdirectorio de un directorio de aplicación local.Nota
App Services no impone nombres de archivo específicos para los archivos de configuración de Atlas Trigger. Sin embargo, una vez importados, App Services renombrará cada archivo de configuración para que coincida con el nombre del disparador que define, por ejemplo,
mytrigger.json.Implemente el activador:
appservices push
Configuración
Los activadores de autenticación tienen las siguientes opciones de configuración:
Campo | Descripción |
|---|---|
Trigger Type | El tipo de disparador. Para los disparadores de autenticación, establezca este valor en |
Action Type | El tipo de operación de autenticación que hace que se active el disparador. |
Providers | Una lista de uno o más tipos de proveedores de autenticación. El activador solo escucha eventos de autenticación generados por estos proveedores. |
Event Type | Elija la acción que se realizará cuando se active el disparador. Puede optar por ejecutar una función o usar AWS EventBridge. |
Function | El nombre de la función que ejecuta el disparador al activarse. Un objeto de evento de autenticación activa el disparador. Este objeto es el único argumento que el disparador pasa a la función. |
Trigger Name | El nombre del disparador. |
Eventos de autenticación
Los eventos de autenticación representan las interacciones del usuario con un proveedor de autenticación. Cada evento corresponde a una acción del usuario con uno de los siguientes tipos de operación:
Tipo de operación | Descripción |
|---|---|
| Representa una única instancia de un usuario que inicia sesión. |
| Representa la creación de un usuario nuevo. |
| Representa la eliminación de un usuario. |
Los objetos de evento de autenticación tienen el siguiente formato:
{ "operationType": <string>, "providers": <array of strings>, "user": <user object>, "time": <ISODate> }
Campo | Descripción |
|---|---|
| El tipo de operación del evento de autenticación. |
| Los proveedores de autenticación que emitieron el evento. Uno de los siguientes nombres representa a cada proveedor de autenticación:
NotaGeneralmente, solo un proveedor de autenticación emite cada evento. Sin embargo, podría ser necesario eliminar un usuario vinculado a varios proveedores. En este caso, el evento |
| El objeto de usuario del usuario que interactuó con el proveedor de autenticación. |
| La hora en que ocurrió el evento. |
Ejemplo
Una tienda en línea desea almacenar metadatos personalizados para cada uno de sus clientes en Atlas. Cada cliente necesita un documento de la store.customers colección. Luego, la tienda puede registrar y consultar los metadatos en el documento del cliente.
La colección debe representar a cada cliente. Para garantizarlo, la tienda crea un disparador de autenticación. Este disparador detecta los nuevos usuarios creados en el proveedor de autenticación de correo electrónico/contraseña. Luego, pasa el objeto de evento de autenticación a su funcióncreateNewUserDocument vinculada,. Esta función crea un nuevo documento que describe al usuario y su actividad. Posteriormente, inserta el documento en la store.customers colección.

{ "type": "AUTHENTICATION", "name": "newUserHandler", "function_name": "createNewUserDocument", "config": { "providers": ["local-userpass"], "operation_type": "CREATE" }, "disabled": false }
exports = async function(authEvent) { const mongodb = context.services.get("mongodb-atlas"); const customers = mongodb.db("store").collection("customers"); const { user, time } = authEvent; const isLinkedUser = user.identities.length > 1; if(isLinkedUser) { const { identities } = user; return users.updateOne( { id: user.id }, { $set: { identities } } ) } else { return users.insertOne({ _id: user.id, ...user }) .catch(console.error) } await customers.insertOne(newUser); }
Ejemplos adicionales
Para obtener ejemplos adicionales de activadores integrados en una aplicación de servicios de aplicaciones, consulte los activadores de ejemplo en Github.