Docs Menu
Docs Home
/ /
Servicios de aplicaciones Atlas

Desencadenantes de autenticación

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.

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.

Un ejemplo de un activador de autenticación configurado en la interfaz de usuario
haga clic para ampliar

Para crear un activador de autenticación con la CLI de App Services:

  1. Agregue un archivo de configuración de activador de autenticación al triggers subdirectorio 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.

  2. Implemente el activador:

    appservices push

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 AUTHENTICATION.

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.

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

LOGIN

Representa una única instancia de un usuario que inicia sesión.

CREATE

Representa la creación de un usuario nuevo.

DELETE

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

operationType

El tipo de operación del evento de autenticación.

providers

Los proveedores de autenticación que emitieron el evento.

Uno de los siguientes nombres representa a cada proveedor de autenticación:

  • "anon-user"

  • "local-userpass"

  • "api-key"

  • "custom-token"

  • "custom-function"

  • "oauth2-facebook"

  • "oauth2-google"

  • "oauth2-apple"

Nota

Generalmente, 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 DELETE de ese usuario incluye todos los proveedores vinculados.

user

El objeto de usuario del usuario que interactuó con el proveedor de autenticación.

time

La hora en que ocurrió el evento.

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.

Ejemplo de interfaz de usuario que configura el disparador
Configuración del disparador
{
"type": "AUTHENTICATION",
"name": "newUserHandler",
"function_name": "createNewUserDocument",
"config": {
"providers": ["local-userpass"],
"operation_type": "CREATE"
},
"disabled": false
}
crearNuevoDocumentoDeUsuario
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);
}

Para obtener ejemplos adicionales de activadores integrados en una aplicación de servicios de aplicaciones, consulte los activadores de ejemplo en Github.

Next

¿Qué son los servicios de aplicación Atlas?

En esta página