Solicitud de Webhooks
Una vez que se emite un evento de hook válido, Logto encontrará los webhooks correspondientes y enviará una solicitud POST por cada configuración de hook.
Encabezados de la solicitud
Clave | Personalizable | Notas |
---|---|---|
user-agent | ✅ | Logto (https://logto.io/) por defecto. |
content-type | ✅ | application/json por defecto. |
logto-signature-sha-256 | la firma del cuerpo de la solicitud, consulta asegurando tus webhooks. |
Puedes sobrescribir los encabezados personalizables personalizando la solicitud con la misma clave.
Cuerpo de la solicitud de eventos de hook de interacción
Eventos disponibles: PostRegister
, PostSignIn
, PostResetPassword
El cuerpo de la solicitud es un objeto JSON que contiene tres tipos de campos de datos:
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;
};
Campo | Tipo | Opcional | Notas |
---|---|---|---|
hookId | string | El identificador en Logto. | |
event | string | Qué evento desencadena este hook. | |
createdAt | string | La hora de creación del payload en formato ISO. | |
interactionEvent | string | El evento de interacción que desencadena este hook. | |
sessionId | string | ✅ | El ID de la sesión (no el ID de interacción) para este evento, si es aplicable. |
userAgent | string | ✅ | El user-agent para la solicitud que desencadena este hook. |
userIp | string | ✅ | La dirección IP para la solicitud que desencadena este hook. |
userId | string | ✅ | El ID de usuario relacionado para este evento, si es aplicable. |
user | UserEntity | ✅ | La entidad de usuario relacionada para este evento, si es aplicable. |
applicationId | string | ✅ | El ID de aplicación relacionado para este evento, si es aplicable. |
application | ApplicationEntity | ✅ | La información de la aplicación relacionada para este evento, si es aplicable. |
Consulta las referencias de Usuarios y Aplicaciones para explicaciones detalladas de los campos.
Cuerpo de la solicitud de eventos de mutación de datos
Campos estándar del cuerpo de la solicitud
Campo | Tipo | Opcional | Notas |
---|---|---|---|
hookId | string | El identificador en Logto. | |
event | string | Qué evento desencadena este hook. | |
createdAt | string | La hora de creación del payload en formato ISO. | |
userAgent | string | ✅ | El user-agent para la solicitud. |
ip | string | ✅ | La dirección IP para la solicitud. |
Campos del cuerpo del contexto de la API de interacción
Eventos de mutación de datos que son desencadenados por llamadas a la API de interacción de usuario.
Eventos disponibles: User.Created
, User.Data.Updated
Campo | Tipo | Opcional | Notas |
---|---|---|---|
interactionEvent | string | ✅ | El evento de interacción que desencadena este hook. |
sessionId | string | ✅ | El ID de la sesión (no el ID de interacción) para este evento, si es aplicable. |
applicationId | string | ✅ | El ID de aplicación relacionado para este evento, si es aplicable. |
application | ApplicationEntity | ✅ | La información de la aplicación relacionada para este evento, si es aplicable. |
Campos del cuerpo del contexto de la Management API
Eventos de mutación de datos que son desencadenados por llamadas a la Management API.
Campo | Tipo | Opcional | Notas |
---|---|---|---|
path | string | ✅ | La ruta de la llamada API que desencadena este hook. |
method | string | ✅ | El método de la llamada API que desencadena este hook. |
status | number | ✅ | El código de estado de respuesta de la llamada API que desencadena este hook. |
params | object | ✅ | Los parámetros de ruta koa de la solicitud de la llamada API que desencadena este hook. |
matchedRoute | string | ✅ | La ruta coincidente de koa de la llamada API que desencadena este hook. Logto utiliza este campo para coincidir con los eventos de hook habilitados. |
Campos del cuerpo del payload de datos
Eventos de usuario
Evento | Campo | Tipo | Opcional | Notas |
---|---|---|---|---|
User.Created | data | UserEntity | La entidad de usuario creada para este evento. | |
User.Data.Updated | data | UserEntity | La entidad de usuario actualizada para este evento. | |
User.Deleted | data | null | / |
Eventos de rol
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;
};
Evento | Campo | Tipo | Opcional | Notas |
---|---|---|---|---|
Role.Created | data | Role | La entidad de rol creada para este evento. | |
Role.Data.Updated | data | Role | La entidad de rol actualizada para este evento. | |
Role.Deleted | data | null | ||
Role.Scope.Updated | data | Scope[] | Los alcances actualizados asignados al rol. | |
Role.Scope.Updated | roleId | string | ✅ | El ID del rol al que se asignan los alcances. (Solo disponible cuando el evento fue desencadenado por la creación de un nuevo rol con alcances preasignados) |
Eventos de permiso (alcance)
Evento | Campo | Tipo | Opcional | Notas |
---|---|---|---|---|
Scope.Created | data | Scope | La entidad de alcance creada para este evento. | |
Scope.Data.Updated | data | Scope | La entidad de alcance actualizada para este evento. | |
Scope.Deleted | data | null | / |
Eventos de organización
type Organization = {
id: string;
name: string;
description?: string;
customData: object;
createdAt: number;
};
Evento | Campo | Tipo | Opcional | Notas |
---|---|---|---|---|
Organization.Created | data | Organization | La entidad de organización creada para este evento. | |
Organization.Data.Updated | data | Organization | La entidad de organización actualizada para este evento. | |
Organization.Deleted | data | null | / | |
Organization.Membership.Updated | data | null | / |
Eventos de rol de organización
type OrganizationRole = {
id: string;
name: string;
description?: string;
};
type OrganizationScope = {
id: string;
name: string;
description?: string;
};
Evento | Campo | Tipo | Opcional | Notas |
---|---|---|---|---|
OrganizationRole.Created | data | OrganizationRole | La entidad de rol de organización creada para este evento. | |
OrganizationRole.Data.Updated | data | OrganizationRole | La entidad de rol de organización actualizada para este evento. | |
OrganizationRole.Deleted | data | null | / | |
OrganizationRole.Scope.Updated | data | null | / | |
OrganizationRole.Scope.Updated | organizationRoleId | string | ✅ | El ID del rol al que se asignan los alcances. (Solo disponible cuando el evento fue desencadenado por la creación de un nuevo rol con alcances preasignados) |
Eventos de permiso de organización (alcance de organización)
Evento | Campo | Tipo | Opcional | Notas |
---|---|---|---|---|
OrganizationScope.Created | data | OrganizationScope | La entidad de alcance de organización creada. | |
OrganizationScope.Data.Updated | data | OrganizationScope | La entidad de alcance de organización actualizada. | |
OrganizationScope.Deleted | data | null | / |