Skip to main content
La Events API proporciona una alternativa basada en extracción a los flujos de eventos. En lugar de que Auth0 envíe eventos a un destino, su aplicación abre una conexión de larga duración a GET /api/v2/events y recibe eventos como un flujo de Server-Sent Events (SSE). Puede controlar cuándo conectarse, cómo reanudar la conexión después de una desconexión y con qué rapidez consumir los eventos. Este enfoque es útil cuando necesita:
  • Procesar eventos a su propio ritmo sin tener que implementar un endpoint de webhook.
  • Reproducir eventos desde un momento específico para completar datos históricos o recuperarse de errores.
  • Integrarse con sistemas que prefieren el sondeo en lugar de la entrega push.

Cómo funciona la Events API

Cuando su aplicación se conecta a la Events API, recibe un flujo de mensajes SSE. Cada mensaje incluye un campo id que actúa como un offset. Si la conexión se interrumpe, su aplicación se vuelve a conectar y proporciona el último offset que recibió. Auth0 reanuda la entrega desde ese punto, por lo que no se pierde ningún evento. El flujo de SSE incluye los siguientes tipos de mensajes:

Ejemplo de flujo SSE

Requisitos previos

Antes de comenzar, asegúrate de tener:
  • Un inquilino de Auth0 con Events habilitado. La cantidad de conexiones de flujo de eventos disponibles depende de tu plan:
  • Un token de acceso de la Management API con el scope read:events. Para obtener más información, consulta Management API Access Tokens.

Conéctese a la Events API

Abra una conexión SSE con el endpoint de eventos de su inquilino. En el siguiente ejemplo se usa curl:

Parámetros de consulta

Use parámetros de consulta para filtrar o reanudar el flujo:

Reanudar después de una desconexión

Las conexiones SSE pueden interrumpirse por muchos motivos: problemas de red, vencimiento del token o rotación de conexiones del lado del servidor (Auth0 cierra periódicamente las conexiones para equilibrar la carga; por lo general, cada pocos minutos). Las bibliotecas cliente SSE estándar gestionan esto de forma transparente, reconectándose y enviando el último offset. Hay dos formas de proporcionar el offset al volver a conectarse:
  • Encabezado Last-Event-ID — el mecanismo estándar de reconexión de SSE. La mayoría de las bibliotecas cliente SSE establecen este encabezado automáticamente al volver a conectarse.
  • Parámetro de consulta from — úselo cuando su cliente no admita el encabezado Last-Event-ID.
Si se proporcionan ambos, el encabezado Last-Event-ID tiene prioridad.
Guarda el valor más reciente de id de cada mensaje (incluidos los mensajes offset-only) en almacenamiento persistente. Si tu aplicación se reinicia, usa el offset guardado para reanudar la entrega desde donde se interrumpió.

Procesar tipos de mensajes

Eventos reales

Los mensajes cuyo campo event coincide con un tipo de evento conocido (por ejemplo, user.created) contienen la carga útil completa del evento en el campo data. Analiza el JSON y procesa el evento según tu lógica de negocio.

Mensajes solo de offset

Auth0 envía mensajes offset-only a intervalos regulares (según la frecuencia de heartbeat) para avanzar su posición en el flujo. Estos mensajes no contienen una carga útil de evento. Actualice el offset almacenado cuando los reciba para que una reconexión futura no vuelva a reproducir eventos que ya haya superado.

Mensajes de error

Un mensaje event: error indica un error terminal, como un offset vencido o un problema del lado del servidor. Después de recibir este mensaje, el flujo se cierra. Su aplicación debe registrar el error y, a continuación, volver a conectarse con el offset adecuado o con un from_timestamp nuevo.

Latidos

Las líneas que comienzan con : son comentarios de SSE que se usan como latidos. Mantienen la conexión activa a través de proxies y balanceadores de carga. No se requiere ningún procesamiento.

Rotación de conexiones del lado del servidor

Auth0 cierra periódicamente las conexiones SSE para equilibrar la carga (normalmente, cada pocos minutos). Este comportamiento es el esperado, no un error. Las bibliotecas cliente SSE estándar (incluido el paquete npm eventsource) se reconectan automáticamente mediante el encabezado Last-Event-ID, por lo que su aplicación reanuda el procesamiento desde el offset correcto sin perder eventos. Si crea un cliente SSE personalizado, asegúrese de que gestione las caídas de conexión correctamente; para ello, conserve el offset más reciente y vuelva a conectarse con él.

Implementar un consumidor

El siguiente ejemplo de Node.js muestra un consumidor mínimo de la Events API que procesa eventos y guarda el offset en un archivo.
El paquete npm eventsource implementa el protocolo SSE y gestiona la reconexión automáticamente mediante el encabezado Last-Event-ID. Si usa una biblioteca SSE diferente, verifique que admita la reconexión automática y el reenvío del offset.

Respuestas de error

La Events API devuelve códigos de estado HTTP estándar cuando no se puede establecer la conexión:

Más información