Aller au contenu principal

Requête de Webhooks

Une fois qu'un événement de hook valide est émis, Logto trouvera les webhooks correspondants et enverra une requête POST par configuration de hook.

En-têtes de requête

CléPersonnalisableRemarques
user-agentLogto (https://logto.io/) par défaut.
content-typeapplication/json par défaut.
logto-signature-sha-256la signature du corps de la requête, se référer à sécuriser vos webhooks.

Vous pouvez remplacer les en-têtes personnalisables en personnalisant les requêtes avec la même clé.

Corps de requête des événements de hook d'interaction

Événements disponibles : PostRegister, PostSignIn, PostResetPassword

Le corps de la requête est un objet JSON qui contient trois types de champ de données :

type UserEntity = {
id: string;
username?: string;
primaryEmail?: string;
primaryPhone?: string;
name?: string;
avatar?: string;
customData?: object;
identities?: object;
lastSignInAt?: string;
createdAt?: string;
applicationId?: string;
isSuspended?: boolean;
};
type ApplicationEntity = {
id: string;
name: string;
description?: string;
};
ChampTypeOptionnelRemarques
hookIdstringL'identifiant dans Logto.
eventstringQuel événement déclenche ce hook.
createdAtstringL'heure de création de la charge utile au format ISO.
interactionEventstringL'événement d'interaction qui déclenche ce hook.
sessionIdstringL'ID de session (pas l'ID d'interaction) pour cet événement, si applicable.
userAgentstringL'agent utilisateur pour la requête qui déclenche ce hook.
userIpstringL'adresse IP pour la requête qui déclenche ce hook.
userIdstringL'ID utilisateur associé à cet événement, si applicable.
userUserEntityL'entité utilisateur associée à cet événement, si applicable.
applicationIdstringL'ID d'application associé à cet événement, si applicable.
applicationApplicationEntityLes informations de l'application associée à cet événement, si applicable.

Voir les références Utilisateurs et Applications pour des explications détaillées des champs.

Corps de requête des événements de hook de mutation de données

Champs standard du corps de la requête

ChampTypeOptionnelRemarques
hookIdstringL'identifiant dans Logto.
eventstringQuel événement déclenche ce hook.
createdAtstringL'heure de création de la charge utile au format ISO.
userAgentstringL'agent utilisateur pour la requête.
ipstringL'adresse IP pour la requête.

Champs du corps de contexte de l'API d'interaction

Événements de hook de mutation de données déclenchés par des appels d'API d'interaction utilisateur.

Événements disponibles : User.Created, User.Data.Updated

ChampTypeOptionnelRemarques
interactionEventstringL'événement d'interaction qui déclenche ce hook.
sessionIdstringL'ID de session (pas l'ID d'interaction) pour cet événement, si applicable.
applicationIdstringL'ID d'application associé à cet événement, si applicable.
applicationApplicationEntityLes informations de l'application associée à cet événement, si applicable.

Champs du corps de contexte de l'API de gestion

Événements de hook de mutation de données déclenchés par des appels d'API de gestion.

ChampTypeOptionnelRemarques
pathstringLe chemin de l'appel API qui déclenche ce hook.
methodstringLa méthode de l'appel API qui déclenche ce hook.
statusnumberLe code de statut de la réponse de l'appel API qui déclenche ce hook.
paramsobjectLes paramètres de chemin koa de la requête de l'appel API qui déclenche ce hook.
matchedRoutestringLa route koa correspondante de l'appel API qui déclenche ce hook. Logto utilise ce champ pour faire correspondre les événements de hook activés.

Champs du corps de la charge utile de données

Événements utilisateur

ÉvénementChampTypeOptionnelRemarques
User.CreateddataUserEntityL'entité utilisateur créée pour cet événement.
User.Data.UpdateddataUserEntityL'entité utilisateur mise à jour pour cet événement.
User.Deleteddatanull/

Événements de rôle

type Role = {
id: string;
name: string;
description: string;
type: 'User' | 'MachineToMachine';
isDefault: boolean;
};
type Scope = {
id: string;
name: string;
description: string;
resourceId: string;
createdAt: number;
};
ÉvénementChampTypeOptionnelRemarques
Role.CreateddataRoleL'entité de rôle créée pour cet événement.
Role.Data.UpdateddataRoleL'entité de rôle mise à jour pour cet événement.
Role.Deleteddatanull
Role.Scope.UpdateddataScope[]Les portées mises à jour assignées au rôle.
Role.Scope.UpdatedroleIdstringL'ID du rôle auquel les portées sont assignées. (Disponible uniquement lorsque l'événement a été déclenché par la création d'un nouveau rôle avec des portées pré-assignées)

Événements de permission (Portée)

ÉvénementChampTypeOptionnelRemarques
Scope.CreateddataScopeL'entité de portée créée pour cet événement.
Scope.Data.UpdateddataScopeL'entité de portée mise à jour pour cet événement.
Scope.Deleteddatanull/

Événements d'organisation

type Organization = {
id: string;
name: string;
description?: string;
customData: object;
createdAt: number;
};
ÉvénementChampTypeOptionnelRemarques
Organization.CreateddataOrganizationL'entité d'organisation créée pour cet événement.
Organization.Data.UpdateddataOrganizationL'entité d'organisation mise à jour pour cet événement.
Organization.Deleteddatanull/
Organization.Membership.Updateddatanull/

Événements de rôle d'organisation

type OrganizationRole = {
id: string;
name: string;
description?: string;
};
type OrganizationScope = {
id: string;
name: string;
description?: string;
};
ÉvénementChampTypeOptionnelRemarques
OrganizationRole.CreateddataOrganizationRoleL'entité de rôle d'organisation créée pour cet événement.
OrganizationRole.Data.UpdateddataOrganizationRoleL'entité de rôle d'organisation mise à jour pour cet événement.
OrganizationRole.Deleteddatanull/
OrganizationRole.Scope.Updateddatanull/
OrganizationRole.Scope.UpdatedorganizationRoleIdstringL'ID du rôle auquel les portées sont assignées. (Disponible uniquement lorsque l'événement a été déclenché par la création d'un nouveau rôle avec des portées pré-assignées)

Événements de permission d'organisation (Portée d'organisation)

ÉvénementChampTypeOptionnelRemarques
OrganizationScope.CreateddataOrganizationScopeL'entité de portée d'organisation créée.
OrganizationScope.Data.UpdateddataOrganizationScopeL'entité de portée d'organisation mise à jour.
OrganizationScope.Deleteddatanull/