跳到主要内容

Webhook 请求

当一个有效的 hook 事件被触发后,Logto 会查找对应的 webhook,并根据每个 hook 配置发送一个 POST 请求。

请求头

Key可自定义说明
user-agent默认值为 Logto (https://logto.io/)
content-type默认值为 application/json
logto-signature-sha-256请求体的签名,详见保护你的 webhook

你可以通过自定义请求头部并使用相同的 key 来覆盖可自定义的请求头。

交互 hook 事件请求体

可用事件:PostRegisterPostSignInPostResetPassword

请求体是一个包含三类数据字段的 JSON 对象:

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;
};
字段类型可选说明
hookIdstringLogto 中的标识符。
eventstring触发此 hook 的事件。
createdAtstring负载的创建时间,ISO 格式。
interactionEventstring触发此 hook 的交互事件。
sessionIdstring此事件的 Session ID(不是 Interaction ID),如适用。
userAgentstring触发此 hook 的请求的 user-agent。
userIpstring触发此 hook 的请求的 IP 地址。
userIdstring此事件相关的用户 ID,如适用。
userUserEntity此事件相关的用户实体,如适用。
applicationIdstring此事件相关的应用 ID,如适用。
applicationApplicationEntity此事件相关的应用信息,如适用。

详细字段说明请参见 用户应用 参考文档。

数据变更 hook 事件请求体

标准请求体字段

字段类型可选说明
hookIdstringLogto 中的标识符。
eventstring触发此 hook 的事件。
createdAtstring负载的创建时间,ISO 格式。
userAgentstring请求的 user-agent。
ipstring请求的 IP 地址。

交互 API 上下文体字段

由用户交互 API 调用触发的数据变更 hook 事件。

可用事件:User.CreatedUser.Data.Updated

字段类型可选说明
interactionEventstring触发此 hook 的交互事件。
sessionIdstring此事件的 Session ID(不是 Interaction ID),如适用。
applicationIdstring此事件相关的应用 ID,如适用。
applicationApplicationEntity此事件相关的应用信息,如适用。

Management API 上下文体字段

由 Management API 调用触发的数据变更 hook 事件。

字段类型可选说明
pathstring触发此 hook 的 API 调用路径。
methodstring触发此 hook 的 API 调用方法。
statusnumber触发此 hook 的 API 调用响应状态码。
paramsobject触发此 hook 的 API 调用的 koa 路径参数。
matchedRoutestring触发此 hook 的 API 调用的 koa 匹配路由。Logto 使用此字段匹配已启用的 hook 事件。

数据负载体字段

用户事件

事件字段类型可选说明
User.CreateddataUserEntity此事件创建的用户实体。
User.Data.UpdateddataUserEntity此事件更新的用户实体。
User.Deleteddatanull/

角色 (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;
};
事件字段类型可选说明
Role.CreateddataRole此事件创建的角色 (Role) 实体。
Role.Data.UpdateddataRole此事件更新的角色 (Role) 实体。
Role.Deleteddatanull
Role.Scope.UpdateddataScope[]分配给角色 (Role) 的已更新权限 (Scope)。
Role.Scope.UpdatedroleIdstring分配权限 (Scope) 的角色 (Role) ID。(仅当事件由创建带有预分配权限的新角色触发时可用)

权限 (Scope) 事件

事件字段类型可选说明
Scope.CreateddataScope此事件创建的权限 (Scope) 实体。
Scope.Data.UpdateddataScope此事件更新的权限 (Scope) 实体。
Scope.Deleteddatanull/

组织 (Organization) 事件

type Organization = {
id: string;
name: string;
description?: string;
customData: object;
createdAt: number;
};
事件字段类型可选说明
Organization.CreateddataOrganization此事件创建的组织 (Organization) 实体。
Organization.Data.UpdateddataOrganization此事件更新的组织 (Organization) 实体。
Organization.Deleteddatanull/
Organization.Membership.Updateddatanull/

组织角色 (OrganizationRole) 事件

type OrganizationRole = {
id: string;
name: string;
description?: string;
};
type OrganizationScope = {
id: string;
name: string;
description?: string;
};
事件字段类型可选说明
OrganizationRole.CreateddataOrganizationRole此事件创建的组织角色 (OrganizationRole) 实体。
OrganizationRole.Data.UpdateddataOrganizationRole此事件更新的组织角色 (OrganizationRole) 实体。
OrganizationRole.Deleteddatanull/
OrganizationRole.Scope.Updateddatanull/
OrganizationRole.Scope.UpdatedorganizationRoleIdstring分配权限 (Scope) 的组织角色 (OrganizationRole) ID。(仅当事件由创建带有预分配权限的新角色触发时可用)

组织权限 (OrganizationScope) 事件

事件字段类型可选说明
OrganizationScope.CreateddataOrganizationScope创建的组织权限 (OrganizationScope) 实体。
OrganizationScope.Data.UpdateddataOrganizationScope更新的组织权限 (OrganizationScope) 实体。
OrganizationScope.Deleteddatanull/

异常 hook 事件请求体

可用事件:Identifier.Lockout

请求体是一个包含标准请求体字段和如下附加字段的 JSON 对象:

enum SignInIdentifier {
Email = 'email',
Phone = 'phone',
Username = 'username',
}
字段类型可选说明
hookIdstringLogto 中的标识符。
eventstring触发此 hook 的事件。
createdAtstring负载的创建时间,ISO 格式。
userAgentstring请求的 user-agent。
ipstring请求的 IP 地址。
interactionEventstring触发此 hook 的交互事件。
sessionIdstring此事件的 Session ID(不是 Interaction ID),如适用。
applicationIdstring此事件相关的应用 ID,如适用。
applicationApplicationEntity此事件相关的应用信息,如适用。
typeSignInIdentifier用户的标识符类型,例如 email、phone 或 username。
valuestring触发锁定的用户标识符值。