Saltar al contenido principal

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

ClavePersonalizableNotas
user-agentLogto (https://logto.io/) por defecto.
content-typeapplication/json por defecto.
logto-signature-sha-256la 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;
};
CampoTipoOpcionalNotas
hookIdstringEl identificador en Logto.
eventstringQué evento desencadena este hook.
createdAtstringLa hora de creación del payload en formato ISO.
interactionEventstringEl evento de interacción que desencadena este hook.
sessionIdstringEl ID de la sesión (no el ID de interacción) para este evento, si es aplicable.
userAgentstringEl user-agent para la solicitud que desencadena este hook.
userIpstringLa dirección IP para la solicitud que desencadena este hook.
userIdstringEl ID de usuario relacionado para este evento, si es aplicable.
userUserEntityLa entidad de usuario relacionada para este evento, si es aplicable.
applicationIdstringEl ID de aplicación relacionado para este evento, si es aplicable.
applicationApplicationEntityLa 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

CampoTipoOpcionalNotas
hookIdstringEl identificador en Logto.
eventstringQué evento desencadena este hook.
createdAtstringLa hora de creación del payload en formato ISO.
userAgentstringEl user-agent para la solicitud.
ipstringLa 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

CampoTipoOpcionalNotas
interactionEventstringEl evento de interacción que desencadena este hook.
sessionIdstringEl ID de la sesión (no el ID de interacción) para este evento, si es aplicable.
applicationIdstringEl ID de aplicación relacionado para este evento, si es aplicable.
applicationApplicationEntityLa 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.

CampoTipoOpcionalNotas
pathstringLa ruta de la llamada API que desencadena este hook.
methodstringEl método de la llamada API que desencadena este hook.
statusnumberEl código de estado de respuesta de la llamada API que desencadena este hook.
paramsobjectLos parámetros de ruta koa de la solicitud de la llamada API que desencadena este hook.
matchedRoutestringLa 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

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

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 actualizados asignados al rol.
Role.Scope.UpdatedroleIdstringEl 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)

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

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 rol de organización

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.UpdatedorganizationRoleIdstringEl 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)

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