Pular para o conteúdo principal

Requisição de Webhooks

Uma vez que um evento de hook válido é emitido, o Logto encontrará os webhooks correspondentes e enviará uma requisição POST por configuração de hook.

Cabeçalhos da requisição​

ChavePersonalizávelObservações
user-agent✅Logto (https://logto.io/) por padrão.
content-type✅application/json por padrão.
logto-signature-sha-256a assinatura do corpo da requisição, consulte protegendo seus webhooks.

Você pode sobrescrever cabeçalhos personalizáveis personalizando os cabeçalhos da requisição com a mesma chave.

Corpo da requisição de eventos de interaction hook​

Eventos disponíveis: PostRegister, PostSignIn, PostResetPassword

O corpo da requisição é um objeto JSON que contém três tipos de campo de dados:

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;
};
CampoTipoOpcionalObservações
hookIdstringO identificador no Logto.
eventstringQual evento disparou este hook.
createdAtstringO horário de criação do payload em formato ISO.
interactionEventstringO evento de interação que disparou este hook.
sessionIdstring✅O ID da sessão (não o ID de interação) para este evento, se aplicável.
userAgentstring✅O user-agent da requisição que disparou este hook.
userIpstring✅O endereço IP da requisição que disparou este hook.
userIdstring✅O ID do usuário relacionado a este evento, se aplicável.
userUserEntity✅A entidade de usuário relacionada a este evento, se aplicável.
applicationIdstring✅O ID do aplicativo relacionado a este evento, se aplicável.
applicationApplicationEntity✅As informações do aplicativo relacionado a este evento, se aplicável.

Veja as referências de Usuários e Aplicativos para explicações detalhadas dos campos.

Corpo da requisição de eventos de data mutation hook​

Campos padrão do corpo da requisição​

CampoTipoOpcionalObservações
hookIdstringO identificador no Logto.
eventstringQual evento disparou este hook.
createdAtstringO horário de criação do payload em formato ISO.
userAgentstring✅O user-agent da requisição.
ipstring✅O endereço IP da requisição.

Campos de contexto de Interaction API no corpo​

Eventos de data mutation hook disparados por chamadas de API de interação do usuário.

Eventos disponíveis: User.Created, User.Data.Updated

CampoTipoOpcionalObservações
interactionEventstring✅O evento de interação que disparou este hook.
sessionIdstring✅O ID da sessão (não o ID de interação) para este evento, se aplicável.
applicationIdstring✅O ID do aplicativo relacionado a este evento, se aplicável.
applicationApplicationEntity✅As informações do aplicativo relacionado a este evento, se aplicável.

Campos de contexto de Management API no corpo​

Eventos de data mutation hook disparados por chamadas de Management API.

CampoTipoOpcionalObservações
pathstring✅O caminho da chamada de API que disparou este hook.
methodstring✅O método da chamada de API que disparou este hook.
statusnumber✅O código de status da resposta da chamada de API que disparou este hook.
paramsobject✅Os parâmetros de caminho koa da chamada de API que disparou este hook.
matchedRoutestring✅A rota koa correspondente da chamada de API que disparou este hook. O Logto usa este campo para corresponder eventos habilitados.

Campos de payload de dados no corpo​

Eventos de usuário

EventoCampoTipoOpcionalObservações
User.CreateddataUserEntityA entidade de usuário criada para este evento.
User.Data.UpdateddataUserEntityA entidade de usuário atualizada para este evento.
User.Deleteddatanull/

Eventos de papel (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;
};
EventoCampoTipoOpcionalObservações
Role.CreateddataRoleA entidade de papel criada para este evento.
Role.Data.UpdateddataRoleA entidade de papel atualizada para este evento.
Role.Deleteddatanull
Role.Scope.UpdateddataScope[]Os escopos atualizados atribuídos ao papel.
Role.Scope.UpdatedroleIdstring✅O ID do papel ao qual os escopos estão atribuídos. (Disponível apenas quando o evento foi disparado por criação de novo papel com escopos pré-atribuídos)

Eventos de permissão (Scope)

EventoCampoTipoOpcionalObservações
Scope.CreateddataScopeA entidade de escopo criada para este evento.
Scope.Data.UpdateddataScopeA entidade de escopo atualizada para este evento.
Scope.Deleteddatanull/

Eventos de organização (Organization)

type Organization = {
id: string;
name: string;
description?: string;
customData: object;
createdAt: number;
};
EventoCampoTipoOpcionalObservações
Organization.CreateddataOrganizationA entidade de organização criada para este evento.
Organization.Data.UpdateddataOrganizationA entidade de organização atualizada 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;
};
EventoCampoTipoOpcionalObservações
OrganizationRole.CreateddataOrganizationRoleA entidade de papel de organização criada para este evento.
OrganizationRole.Data.UpdateddataOrganizationRoleA entidade de papel de organização atualizada para este evento.
OrganizationRole.Deleteddatanull/
OrganizationRole.Scope.Updateddatanull/
OrganizationRole.Scope.UpdatedorganizationRoleIdstring✅O ID do papel ao qual os escopos estão atribuídos. (Disponível apenas quando o evento foi disparado por criação de novo papel com escopos pré-atribuídos)

Eventos de permissão de organização (OrganizationScope)

EventoCampoTipoOpcionalObservações
OrganizationScope.CreateddataOrganizationScopeA entidade de escopo de organização criada.
OrganizationScope.Data.UpdateddataOrganizationScopeA entidade de escopo de organização atualizada.
OrganizationScope.Deleteddatanull/

Corpo da requisição de eventos de exception hook​

Eventos disponíveis: Identifier.Lockout

O corpo da requisição é um objeto JSON que contém os campos padrão do corpo da requisição e campos adicionais conforme abaixo:

enum SignInIdentifier {
Email = 'email',
Phone = 'phone',
Username = 'username',
}
CampoTipoOpcionalObservações
hookIdstringO identificador no Logto.
eventstringQual evento disparou este hook.
createdAtstringO horário de criação do payload em formato ISO.
userAgentstring✅O user-agent da requisição.
ipstring✅O endereço IP da requisição.
interactionEventstring✅O evento de interação que disparou este hook.
sessionIdstring✅O ID da sessão (não o ID de interação) para este evento, se aplicável.
applicationIdstring✅O ID do aplicativo relacionado a este evento, se aplicável.
applicationApplicationEntity✅As informações do aplicativo relacionado a este evento, se aplicável.
typeSignInIdentifierO tipo de identificador do usuário, por exemplo, email, telefone ou nome de usuário.
valuestringO valor do identificador do usuário que disparou o bloqueio.