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-agentLogto (https://logto.io/) por padrão.
content-typeapplication/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.
sessionIdstringO ID da sessão (não o ID de interação) para este evento, se aplicável.
userAgentstringO user-agent da requisição que disparou este hook.
userIpstringO endereço IP da requisição que disparou este hook.
userIdstringO ID do usuário relacionado a este evento, se aplicável.
userUserEntityA entidade de usuário relacionada a este evento, se aplicável.
applicationIdstringO ID do aplicativo relacionado a este evento, se aplicável.
applicationApplicationEntityAs 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.
userAgentstringO user-agent da requisição.
ipstringO 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
interactionEventstringO evento de interação que disparou este hook.
sessionIdstringO ID da sessão (não o ID de interação) para este evento, se aplicável.
applicationIdstringO ID do aplicativo relacionado a este evento, se aplicável.
applicationApplicationEntityAs 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
pathstringO caminho da chamada de API que disparou este hook.
methodstringO método da chamada de API que disparou este hook.
statusnumberO código de status da resposta da chamada de API que disparou este hook.
paramsobjectOs parâmetros de caminho koa da chamada de API que disparou este hook.
matchedRoutestringA 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.UpdatedroleIdstringO 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.UpdatedorganizationRoleIdstringO 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.
userAgentstringO user-agent da requisição.
ipstringO endereço IP da requisição.
interactionEventstringO evento de interação que disparou este hook.
sessionIdstringO ID da sessão (não o ID de interação) para este evento, se aplicável.
applicationIdstringO ID do aplicativo relacionado a este evento, se aplicável.
applicationApplicationEntityAs 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.