Saltar al contenido principal

Solicitud de Webhooks (Webhooks request)

Una vez que se emite un evento de hook válido, Logto buscará los webhooks correspondientes y enviará una solicitud POST por cada configuración de hook.

Encabezados de la solicitud​

KeyPersonalizableNotas
user-agent✅Logto (https://logto.io/) por defecto.
content-type✅application/json por defecto.
logto-signature-sha-256la firma del cuerpo de la solicitud, consulta asegura tus webhooks.

Puedes sobrescribir los encabezados personalizables personalizando los encabezados de la solicitud con la misma clave.

Cuerpo de la solicitud de eventos de interaction hook​

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;
};
enum ApplicationType {
Native = 'Native',
SPA = 'SPA',
Traditional = 'Traditional',
MachineToMachine = 'MachineToMachine',
Protected = 'Protected',
SAML = 'SAML',
}

type ApplicationEntity = {
id: string;
type: ApplicationType;
name: string;
description?: string;
};
CampoTipoOpcionalNotas
hookIdstringEl identificador en Logto.
eventstringQué evento dispara este hook.
createdAtstringLa fecha de creación del payload en formato ISO.
interactionEventstringEl evento de interacción que dispara este hook.
sessionIdstring✅El ID de sesión (no el ID de interacción) para este evento, si aplica.
userAgentstring✅El user-agent de la solicitud que dispara este hook.
userIpstring✅La dirección IP de la solicitud que dispara este hook.
userIdstring✅El ID de usuario relacionado para este evento, si aplica.
userUserEntity✅La entidad de usuario relacionada para este evento, si aplica.
applicationIdstring✅El ID de aplicación relacionado para este evento, si aplica.
applicationApplicationEntity✅La información de la aplicación relacionada para este evento, si aplica.

Consulta la referencia de Usuarios y Aplicaciones para explicaciones detalladas de los campos.

Cuerpo de la solicitud de eventos de data mutation hook​

Campos estándar del cuerpo de la solicitud​

CampoTipoOpcionalNotas
hookIdstringEl identificador en Logto.
eventstringQué evento dispara este hook.
createdAtstringLa fecha de creación del payload en formato ISO.
userAgentstring✅El user-agent de la solicitud.
ipstring✅La dirección IP de la solicitud.

Campos del cuerpo de contexto de Interaction API​

Eventos de data mutation hook que son disparados por llamadas a la API de interacción de usuario.

Eventos disponibles: User.Created, User.Data.Updated

CampoTipoOpcionalNotas
interactionEventstring✅El evento de interacción que dispara este hook.
sessionIdstring✅El ID de sesión (no el ID de interacción) para este evento, si aplica.
applicationIdstring✅El ID de aplicación relacionado para este evento, si aplica.
applicationApplicationEntity✅La información de la aplicación relacionada para este evento, si aplica.

Campos del cuerpo de contexto de Management API​

Eventos de data mutation hook que son disparados por llamadas a la Management API.

CampoTipoOpcionalNotas
pathstring✅La ruta de la llamada a la API que dispara este hook.
methodstring✅El método de la llamada a la API que dispara este hook.
statusnumber✅El código de estado de la respuesta de la llamada a la API que dispara este hook.
paramsobject✅Los parámetros de ruta koa de la solicitud de la API que dispara este hook.
matchedRoutestring✅La ruta koa coincidente de la llamada a la API que dispara este hook. Logto usa este campo para emparejar los eventos habilitados de hook.

Campos del cuerpo de datos del payload​

Eventos de usuario

EventoCampoTipoOpcionalNotas
User.CreateddataUserEntityLa entidad de usuario creada para este evento.
User.Data.UpdateddataUserEntityLa entidad de usuario actualizada para este evento.
User.Deleteddatanull/

Eventos de rol (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;
};
EventoCampoTipoOpcionalNotas
Role.CreateddataRoleLa entidad de rol creada para este evento.
Role.Data.UpdateddataRoleLa entidad de rol actualizada para este evento.
Role.Deleteddatanull
Role.Scope.UpdateddataScope[]Los alcances (scopes) actualizados asignados al rol.
Role.Scope.UpdatedroleIdstring✅El ID del rol al que se asignan los alcances. (Solo disponible cuando el evento fue disparado por la creación de un nuevo rol con alcances preasignados)

Eventos de permiso (Scope)

EventoCampoTipoOpcionalNotas
Scope.CreateddataScopeLa entidad de alcance creada para este evento.
Scope.Data.UpdateddataScopeLa entidad de alcance actualizada para este evento.
Scope.Deleteddatanull/

Eventos de organización (Organization)

type Organization = {
id: string;
name: string;
description?: string;
customData: object;
createdAt: number;
};
EventoCampoTipoOpcionalNotas
Organization.CreateddataOrganizationLa entidad de organización creada para este evento.
Organization.Data.UpdateddataOrganizationLa entidad de organización actualizada para este evento.
Organization.Deleteddatanull/
Organization.Membership.Updateddatanull/

Eventos de OrganizationRole

type OrganizationRole = {
id: string;
name: string;
description?: string;
};
type OrganizationScope = {
id: string;
name: string;
description?: string;
};
EventoCampoTipoOpcionalNotas
OrganizationRole.CreateddataOrganizationRoleLa entidad de rol de organización creada para este evento.
OrganizationRole.Data.UpdateddataOrganizationRoleLa entidad de rol de organización actualizada para este evento.
OrganizationRole.Deleteddatanull/
OrganizationRole.Scope.Updateddatanull/
OrganizationRole.Scope.UpdatedorganizationRoleIdstring✅El ID del rol al que se asignan los alcances. (Solo disponible cuando el evento fue disparado por la creación de un nuevo rol con alcances preasignados)

Eventos de permiso de organización (OrganizationScope)

EventoCampoTipoOpcionalNotas
OrganizationScope.CreateddataOrganizationScopeLa entidad de alcance de organización creada.
OrganizationScope.Data.UpdateddataOrganizationScopeLa entidad de alcance de organización actualizada.
OrganizationScope.Deleteddatanull/

Cuerpo de la solicitud de eventos de excepción hook​

Eventos disponibles: Identifier.Lockout

El cuerpo de la solicitud es un objeto JSON que contiene los campos estándar del cuerpo de la solicitud y campos adicionales como se muestra a continuación:

enum SignInIdentifier {
Email = 'email',
Phone = 'phone',
Username = 'username',
}
CampoTipoOpcionalNotas
hookIdstringEl identificador en Logto.
eventstringQué evento dispara este hook.
createdAtstringLa fecha de creación del payload en formato ISO.
userAgentstring✅El user-agent de la solicitud.
ipstring✅La dirección IP de la solicitud.
interactionEventstring✅El evento de interacción que dispara este hook.
sessionIdstring✅El ID de sesión (no el ID de interacción) para este evento, si aplica.
applicationIdstring✅El ID de aplicación relacionado para este evento, si aplica.
applicationApplicationEntity✅La información de la aplicación relacionada para este evento, si aplica.
typeSignInIdentifierEl tipo de identificador del usuario, por ejemplo, email, teléfono o nombre de usuario.
valuestringEl valor del identificador del usuario que disparó el bloqueo.