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
To open the authentication trigger configuration screen in the Atlas App Services UI, click Triggers en el menú de navegación de la izquierda, haz clic en Create a Trigger y luego selecciona la pestaña Authentication junto a Trigger Type.
Configure the trigger and then click Save at the bottom of the page to add it to your current deployment draft.

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
triggerssubdirectory of a local application directory.Nota
App Services no aplica nombres de archivo específicos para los archivos de configuración de activadores de Atlas. Sin embargo, una vez importado, Servicios de aplicación renombrará cada archivo de configuración para que coincida con el nombre del activador 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 | The type of the trigger. For authentication triggers, set this value to |
Action Type | The authentication operation type that causes the trigger to fire. |
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 activador. |
Eventos de autenticación
Authentication events represent user interactions with an authentication provider. Each event corresponds to a single user action with one of the following operation types:
Tipo de operación | Descripción |
|---|---|
| Representa una instancia única de un usuario que inicia sesión. |
| Representa la creación de un usuario nuevo. |
| Represents the deletion of a user. |
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 |
| The user object of the user that interacted with the authentication provider. |
| 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 garantizar esto, la tienda crea un activador de autenticación. Este activador escucha los usuarios recién 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ón vinculada, createNewUserDocument. La función crea un nuevo documento que describe al usuario y su actividad. Luego, la función inserta el documento en la colección store.customers.

{ "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
For additional examples of Triggers integrated into an App Services App, checkout the example Triggers on Github.