Skip to main content
L’API Events offre une solution de rechange par extraction aux flux d’événements. Au lieu qu’Auth0 envoie les événements vers une destination, votre application ouvre une connexion de longue durée à GET /api/v2/events et reçoit les événements sous la forme d’un flux Server-Sent Events (SSE). Vous contrôlez quand vous connecter, comment reprendre après une déconnexion et à quelle vitesse consommer les événements. Cette approche est utile lorsque vous devez :
  • Traiter les événements à votre propre rythme sans configurer un endpoint de webhook.
  • Relire des événements à partir d’un moment précis pour le remplissage rétrospectif ou la récupération.
  • Intégrer des systèmes qui privilégient la scrutation plutôt qu’une livraison par envoi.

Fonctionnement de l’API Events

Lorsque votre application se connecte à l’API Events, elle reçoit un flux de messages SSE. Chaque message comprend un champ id qui sert d’offset. Si la connexion est interrompue, votre application se reconnecte et fournit le dernier offset reçu. Auth0 reprend la transmission à partir de ce point, de sorte qu’aucun événement n’est perdu. Le flux SSE comprend les types de messages suivants :

Exemple de flux SSE

Prérequis

Avant de commencer, assurez-vous d’avoir :
  • Un locataire Auth0 avec Events activé. Le nombre de connexions de flux d’événements offertes dépend de votre forfait :
  • Un jeton d’accès de la Management API avec le scope read:events. Pour en savoir plus, consultez jetons d’accès de la Management API.

Se connecter à l’API Events

Ouvrez une connexion SSE au point de terminaison Events de votre locataire. L’exemple suivant utilise curl :

Paramètres de requête

Utilisez des paramètres de requête pour filtrer ou reprendre le flux :

Reprendre après une interruption de connexion

Les connexions SSE peuvent être interrompues pour plusieurs raisons : problèmes réseau, expiration du jeton ou recyclage des connexions côté serveur (Auth0 ferme périodiquement les connexions pour répartir la charge — généralement toutes les quelques minutes). Les bibliothèques clientes SSE standard gèrent cela de façon transparente en se reconnectant et en envoyant le dernier offset. Il existe deux façons de fournir l’offset lors de la reconnexion :
  • En-tête Last-Event-ID — mécanisme standard de reconnexion SSE. La plupart des bibliothèques clientes SSE définissent automatiquement cet en-tête lors de la reconnexion.
  • Paramètre de requête from — utilisez-le lorsque votre client ne prend pas en charge l’en-tête Last-Event-ID.
Si les deux sont fournis, l’en-tête Last-Event-ID prévaut.
Conservez dans un stockage persistant la valeur id la plus récente de chaque message (y compris les messages offset-only). Si votre application redémarre, utilisez l’offset enregistré pour reprendre la livraison là où vous l’aviez laissée.

Gérer les types de messages

Événements réels

Les messages dont le champ event correspond à un type d’événement connu (par exemple, user.created) contiennent le payload complet de l’événement dans le champ data. Analysez le JSON et traitez l’événement selon votre logique d’affaires.

Messages offset-only

Auth0 envoie des messages offset-only à intervalles réguliers (à la fréquence de heartbeat) pour faire progresser votre position dans le flux. Ces messages ne contiennent aucun payload d’événement. Mettez à jour l’offset enregistré lorsque vous les recevez afin qu’une reconnexion ultérieure ne rejoue pas les événements que vous avez déjà dépassés.

Messages d’erreur

Un message event: error signale une erreur fatale, comme un offset expiré ou un problème côté serveur. Après avoir reçu ce message, le flux se ferme. Votre application doit consigner l’erreur, puis se reconnecter avec l’offset approprié ou un from_timestamp récent.

Heartbeats

Les lignes qui commencent par : sont des commentaires SSE utilisés comme heartbeats. Elles maintiennent la connexion active via les proxys et les répartiteurs de charge. Aucun traitement n’est nécessaire.

Rotation côté serveur des connexions

Auth0 ferme périodiquement les connexions SSE à des fins d’équilibrage de charge (généralement toutes les quelques minutes). Il s’agit d’un comportement attendu, et non d’une erreur. Les bibliothèques clientes SSE standard (y compris le paquet npm eventsource) se reconnectent automatiquement à l’aide de l’en-tête Last-Event-ID, ce qui permet à votre application de reprendre au bon offset sans perdre d’événements. Si vous créez un client SSE personnalisé, assurez-vous qu’il gère correctement les interruptions de connexion en conservant l’offset le plus récent et en se reconnectant avec celui-ci.

Implémenter un consommateur

L’exemple Node.js suivant présente un consommateur minimal de l’API Events qui traite les événements et enregistre l’offset dans un fichier.
Le package npm eventsource implémente le protocole SSE et gère automatiquement la reconnexion au moyen de l’en-tête Last-Event-ID. Si vous utilisez une autre bibliothèque SSE, assurez-vous qu’elle prend en charge la reconnexion automatique et le transfert de l’offset.

Réponses d’erreur

L’API Events renvoie des codes d’état HTTP standard lorsqu’il est impossible d’établir la connexion :

En savoir plus