Aller au contenu principal

Requête Webhooks

Lorsqu'un événement de hook valide est émis, Logto recherche les webhooks correspondants et envoie une requête POST par configuration de hook.

En-têtes de requête​

CléPersonnalisableRemarques
user-agent✅Logto (https://logto.io/) par défaut.
content-type✅application/json par défaut.
logto-signature-sha-256la signature du corps de la requête, voir sécuriser vos webhooks.

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

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

Événements disponibles : PostRegister, PostSignIn, PostResetPassword

Le corps de la requête est un objet JSON qui contient trois types de champs 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;
};
enum ApplicationType {
Native = 'Native',
SPA = 'SPA',
Traditional = 'Traditional',
MachineToMachine = 'MachineToMachine',
Protected = 'Protected',
SAML = 'SAML',
}

type ApplicationEntity = {
id: string;
type: ApplicationType;
name: string;
description?: string;
};
ChampTypeOptionnelRemarques
hookIdstringL'identifiant dans Logto.
eventstringL'événement qui déclenche ce hook.
createdAtstringLa date de création du payload au format ISO.
interactionEventstringL'événement d'interaction qui déclenche ce hook.
sessionIdstring✅L'ID de session (et non l'ID d'interaction) pour cet événement, si applicable.
userAgentstring✅Le user-agent pour la requête qui déclenche ce hook.
userIpstring✅L'adresse IP pour la requête qui déclenche ce hook.
userIdstring✅L'ID utilisateur associé à cet événement, si applicable.
userUserEntity✅L'entité utilisateur associée à cet événement, si applicable.
applicationIdstring✅L'ID d'application associé à cet événement, si applicable.
applicationApplicationEntity✅Les informations de l'application associée à cet événement, si applicable.

Voir la référence Utilisateurs et Applications pour des explications détaillées des champs.

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

Champs standards du corps de la requête​

ChampTypeOptionnelRemarques
hookIdstringL'identifiant dans Logto.
eventstringL'événement qui déclenche ce hook.
createdAtstringLa date de création du payload au format ISO.
userAgentstring✅Le user-agent pour la requête.
ipstring✅L'adresse IP pour la requête.

Champs du corps de contexte Interaction API​

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

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

ChampTypeOptionnelRemarques
interactionEventstring✅L'événement d'interaction qui déclenche ce hook.
sessionIdstring✅L'ID de session (et non l'ID d'interaction) pour cet événement, si applicable.
applicationIdstring✅L'ID d'application associé à cet événement, si applicable.
applicationApplicationEntity✅Les informations de l'application associée à cet événement, si applicable.

Champs du corps de contexte Management API​

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

ChampTypeOptionnelRemarques
pathstring✅Le chemin de l'appel API qui déclenche ce hook.
methodstring✅La méthode de l'appel API qui déclenche ce hook.
statusnumber✅Le code de statut de la réponse de l'appel API qui déclenche ce hook.
paramsobject✅Les paramètres de chemin koa de la requête de l'appel API qui déclenche ce hook.
matchedRoutestring✅La route koa correspondante de l'appel API qui déclenche ce hook. Logto utilise ce champ pour faire correspondre les événements 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 Rôle (Role)

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é rôle créée pour cet événement.
Role.Data.UpdateddataRoleL'entité rôle mise à jour pour cet événement.
Role.Deleteddatanull
Role.Scope.UpdateddataScope[]Les portées mises à jour attribuées au rôle.
Role.Scope.UpdatedroleIdstring✅L'ID du rôle auquel les portées sont attribué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é-attribuées)

Événements Permission (Scope)

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

Événements Organisation (Organization)

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

Événements OrganisationRôle (OrganizationRole)

type OrganizationRole = {
id: string;
name: string;
description?: string;
};
type OrganizationScope = {
id: string;
name: string;
description?: string;
};
ÉvénementChampTypeOptionnelRemarques
OrganizationRole.CreateddataOrganizationRoleL'entité rôle d'organisation créée pour cet événement.
OrganizationRole.Data.UpdateddataOrganizationRoleL'entité rôle d'organisation mise à jour pour cet événement.
OrganizationRole.Deleteddatanull/
OrganizationRole.Scope.Updateddatanull/
OrganizationRole.Scope.UpdatedorganizationRoleIdstring✅L'ID du rôle auquel les portées sont attribué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é-attribuées)

Événements Permission d'organisation (OrganizationScope)

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

Corps de la requête des événements d'exception hook​

Événements disponibles : Identifier.Lockout

Le corps de la requête est un objet JSON qui contient les champs standards du corps de la requête et des champs additionnels comme ci-dessous :

enum SignInIdentifier {
Email = 'email',
Phone = 'phone',
Username = 'username',
}
ChampTypeOptionnelRemarques
hookIdstringL'identifiant dans Logto.
eventstringL'événement qui déclenche ce hook.
createdAtstringLa date de création du payload au format ISO.
userAgentstring✅Le user-agent pour la requête.
ipstring✅L'adresse IP pour la requête.
interactionEventstring✅L'événement d'interaction qui déclenche ce hook.
sessionIdstring✅L'ID de session (et non l'ID d'interaction) pour cet événement, si applicable.
applicationIdstring✅L'ID d'application associé à cet événement, si applicable.
applicationApplicationEntity✅Les informations de l'application associée à cet événement, si applicable.
typeSignInIdentifierLe type d'identifiant utilisateur, ex : email, téléphone ou nom d'utilisateur.
valuestringLa valeur de l'identifiant utilisateur qui a déclenché le verrouillage.