Saltar al contenido principal
Esta guía le mostrará cómo crear e implementar su primera Action mediante el . Al finalizar, comprenderá la funcionalidad básica que usará con todas las Actions y estará familiarizado con el modelo de programación. Lo que aprenderá constituye la base para escribir cualquier Action, independientemente de su propósito o del flujo.

El objetivo: notificar a Slack cuando un usuario inicia sesión

Va a crear una Action que envía un mensaje a un canal de Slack cuando un usuario inicia sesión. Aunque este tutorial usará el trigger Post Login, la información que se proporciona aquí es útil para triggers de cualquier tipo. Para completar esta tarea, hará lo siguiente:

Requisitos previos

Como esta Action enviará mensajes a un canal de Slack, debe crear un webhook entrante para un espacio de trabajo de Slack. Una vez que tenga la URL del webhook de Slack, puede continuar con esta guía.

Crear una Action

Para usar una Action en un flujo específico, primero debe crearla y luego agregarla a un flujo.
  1. Vaya a Auth0 Dashboard > Actions > Library, y seleccione Create Action > Build from scratch.
  2. Introduzca un Name y seleccione el trigger Login / Post Login, ya que va a agregar una Action al flujo de inicio de sesión; luego seleccione Create.
Se abre el editor de código de Actions:
Editor de código de Actions

Crear una Action a partir de una plantilla

La galería de plantillas de Actions ofrece varias plantillas iniciales para ayudarle a crear una Action. Para crear una Action a partir de una plantilla:
  1. Vaya a Auth0 Dashboard > Actions > Library y, a continuación, seleccione Create Action.
  2. Seleccione Choose from template.
  3. Seleccione la plantilla que desea usar para crear la Action.
  4. Ahora verá una vista previa de solo lectura del código de la plantilla. Para continuar, seleccione Use this template.
  5. Introduzca un nombre y seleccione Create.

Agregar un Secret

Cada Action puede contener valores Secret, adecuados para almacenar información confidencial, como y claves de API. Almacene la URL del webhook de Slack como un Secret.
  1. Seleccione el icono de llave en la barra lateral izquierda del editor de código.
  2. Seleccione Add Secret.
  3. Asigne al Secret el siguiente nombre: SLACK_WEBHOOK_URL.
  4. Pegue la URL del webhook proporcionada por Slack y seleccione Create.
Verá que el Secret se agregó a la Action y que puede usar el nuevo Secret mediante el autocompletado inteligente escribiendo event.secrets.
Editor de código de Actions: su Secret se agregó en la sección Secrets.
Una vez creado un Secret, su valor nunca volverá a mostrarse. Auth0 cifra todos los Secrets y los almacena de forma segura.

Agregar una dependencia

Usarás el paquete de npm @slack/webhook para facilitar el envío de mensajes a Slack. Puedes usar casi cualquier paquete público de npm en una Action, siempre que pueda instalarse sin depender de complementos nativos. Para agregar la dependencia:
  1. Selecciona el icono Dependency (icono de cubo) en la barra lateral.
  2. En Nombre, ingresa @slack/webhook. De forma predeterminada, tu Action usará la versión más reciente de la dependencia disponible en el momento en que se agregó.
  3. Selecciona Create y la dependencia debería agregarse a la Action:
    Editor de código de Actions: se agregó tu dependencia.
Cuando guardes esta Action, se resolverá la versión más reciente de la dependencia y se reemplazará por un número de versión específico para evitar que futuras actualizaciones del paquete afecten a tu Action.

Guardar el borrador

Selecciona Guardar borrador. Tu Action se guarda, pero todavía no se ejecutará como parte de ningún flujo de usuario. Con Actions, puedes crear, editar y probar Actions antes de que afecten al tráfico de tu inquilino de Auth0. Cuando estés conforme con el comportamiento de la Action, la implementarás y la agregarás a un flujo más adelante.

Agregar lógica personalizada

Ahora que la Action ya se configuró con un Secret y una dependencia, ¡escribamos el código! Cada Action tiene un objeto event que contiene información contextual de solo lectura relevante para el trigger asociado. Si empiezas a escribir event. en el Editor, verás todas las propiedades disponibles del evento. Para obtener más información sobre qué datos están disponibles en cada trigger, consulta Explorar flujos y triggers. Usemos nuestra Action para notificar a Slack. Agrega este código a tu Action:
const { IncomingWebhook } = require('@slack/webhook');

exports.onExecutePostLogin = async (event, api) => {
    const url = event.secrets.SLACK_WEBHOOK_URL;
    const webhook = new IncomingWebhook(url);

    // Enviar la notificación
    await webhook.send({ text: "Logging In..." });
};
Selecciona Save Draft para guardar la Action.

Probar la Action

Antes de ejecutar esta Action en tu inquilino con tráfico real de usuarios, pruébala para comprobar que funciona como se espera.
  1. Selecciona el icono de Test (triángulo) en la barra lateral. En la sección Payload, verás datos JSON editables correspondientes al trigger que seleccionaste cuando creaste la Action.
    Editor de código de Actions: panel Test Runner
  2. Selecciona el botón Run y deberías ver un mensaje en tu canal de Slack.

Desplegar la Action

Ahora que hemos comprobado que la Action funciona como se espera, es hora de desplegarla. Selecciona Deploy. Al desplegar una Action, se toma una instantánea de la Action en ese momento y se registra como una versión de Action. Selecciona Version History y deberías ver la Action registrada como Version 1:
Actions: Historial de versiones
Ahora puedes actualizar tu Action y guardarla sin afectar a la Version 1 de tu Action. Auth0 solo ejecutará la versión desplegada actualmente de una Action, por lo que, hasta que vuelvas a desplegar una Action, Auth0 ejecutará la Version 1.

Asocia la Action a un flujo

El último paso para configurar una nueva Action y hacer que se ejecute como parte del tráfico de tu inquilino es asociarla a un flujo.
  1. Ve a Auth0 Dashboard > Actions > Flows para ver una lista de los flujos disponibles:
  2. Selecciona el flujo de inicio de sesión y arrastra my-slack-action al flujo.
    Actions Flows: Flujo de inicio de sesión
  3. Selecciona Apply.
La Action ya se está ejecutando con tráfico real de usuarios en tu inquilino. Si quieres un entorno de pruebas más sólido, considera configurar varios entornos de Auth0.

Observa las Actions en los registros del inquilino

Ahora que tu Action se ejecuta como parte del flujo de inicio de sesión, Auth0 registra información sobre cada ejecución de la Action en los registros del inquilino. Para verlo, ve a Auth0 Dashboard > Monitoring > Logs y selecciona un evento de Successful Login. Deberías ver una vista de Action Details que contiene información sobre cualquier Action que se haya ejecutado como parte de ese flujo.
Registros del inquilino: vista de Action Details

Próximos pasos

Ahora que ya has escrito tu primera Action, consulta Explorar flujos y triggers para aprender a realizar algunas tareas comunes con Actions.