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
/ /
Atlas App Services

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

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.

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

  2. Implemente el activador:

    appservices push

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

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.

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

LOGIN

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

CREATE

Representa la creación de un usuario nuevo.

DELETE

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

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

The user object of the user that interacted with the authentication provider.

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

Example UI that configures the trigger
Configuración de activador
{
"type": "AUTHENTICATION",
"name": "newUserHandler",
"function_name": "createNewUserDocument",
"config": {
"providers": ["local-userpass"],
"operation_type": "CREATE"
},
"disabled": false
}
createNewUserDocument
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);
}

For additional examples of Triggers integrated into an App Services App, checkout the example Triggers on Github.

Next

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

En esta página