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-agentLogto (https://logto.io/) por defecto.
content-typeapplication/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.
sessionIdstringEl ID de sesión (no el ID de interacción) para este evento, si aplica.
userAgentstringEl user-agent de la solicitud que dispara este hook.
userIpstringLa dirección IP de la solicitud que dispara este hook.
userIdstringEl ID de usuario relacionado para este evento, si aplica.
userUserEntityLa entidad de usuario relacionada para este evento, si aplica.
applicationIdstringEl ID de aplicación relacionado para este evento, si aplica.
applicationApplicationEntityLa 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.
userAgentstringEl user-agent de la solicitud.
ipstringLa 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
interactionEventstringEl evento de interacción que dispara este hook.
sessionIdstringEl ID de sesión (no el ID de interacción) para este evento, si aplica.
applicationIdstringEl ID de aplicación relacionado para este evento, si aplica.
applicationApplicationEntityLa 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
pathstringLa ruta de la llamada a la API que dispara este hook.
methodstringEl método de la llamada a la API que dispara este hook.
statusnumberEl código de estado de la respuesta de la llamada a la API que dispara este hook.
paramsobjectLos parámetros de ruta koa de la solicitud de la API que dispara este hook.
matchedRoutestringLa 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.UpdatedroleIdstringEl 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.UpdatedorganizationRoleIdstringEl 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.
userAgentstringEl user-agent de la solicitud.
ipstringLa dirección IP de la solicitud.
interactionEventstringEl evento de interacción que dispara este hook.
sessionIdstringEl ID de sesión (no el ID de interacción) para este evento, si aplica.
applicationIdstringEl ID de aplicación relacionado para este evento, si aplica.
applicationApplicationEntityLa 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.