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-agentLogto (https://logto.io/) par défaut.
content-typeapplication/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.
sessionIdstringL'ID de session (et non l'ID d'interaction) pour cet événement, si applicable.
userAgentstringLe user-agent 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 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.
userAgentstringLe user-agent pour la requête.
ipstringL'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
interactionEventstringL'événement d'interaction qui déclenche ce hook.
sessionIdstringL'ID de session (et non 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 Management API

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

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 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.UpdatedroleIdstringL'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.UpdatedorganizationRoleIdstringL'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.
userAgentstringLe user-agent pour la requête.
ipstringL'adresse IP pour la requête.
interactionEventstringL'événement d'interaction qui déclenche ce hook.
sessionIdstringL'ID de session (et non 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.
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.