跳到主要内容

Webhooks 请求

一旦有效的 hook 事件被触发,Logto 将找到相应的 webhooks,并根据每个 hook 配置发送一个 POST 请求。

请求头

KeyCustomizableNotes
user-agent默认是 Logto (https://logto.io/)
content-type默认是 application/json
logto-signature-sha-256请求体的签名,参考 保护你的 webhooks

你可以通过使用相同的 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;
};
type ApplicationEntity = {
id: string;
name: string;
description?: string;
};
FieldTypeOptionalNotes
hookIdstring在 Logto 中的标识符。
eventstring触发此 hook 的事件。
createdAtstring负载的创建时间,ISO 格式。
interactionEventstring触发此 hook 的交互事件。
sessionIdstring此事件的会话 ID(不是交互 ID),如果适用。
userAgentstring触发此 hook 的请求的 user-agent。
userIpstring触发此 hook 的请求的 IP 地址。
userIdstring此事件相关的用户 ID,如果适用。
userUserEntity此事件相关的用户实体,如果适用。
applicationIdstring此事件相关的应用 ID,如果适用。
applicationApplicationEntity此事件相关的应用信息,如果适用。

参见 用户应用 参考以获取详细的字段解释。

数据变更 hook 事件请求体

标准请求体字段

FieldTypeOptionalNotes
hookIdstring在 Logto 中的标识符。
eventstring触发此 hook 的事件。
createdAtstring负载的创建时间,ISO 格式。
userAgentstring请求的 user-agent。
ipstring请求的 IP 地址。

交互 API 上下文体字段

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

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

FieldTypeOptionalNotes
interactionEventstring触发此 hook 的交互事件。
sessionIdstring此事件的会话 ID(不是交互 ID),如果适用。
applicationIdstring此事件相关的应用 ID,如果适用。
applicationApplicationEntity此事件相关的应用信息,如果适用。

管理 API 上下文体字段

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

FieldTypeOptionalNotes
pathstring触发此 hook 的 API 调用路径。
methodstring触发此 hook 的 API 调用方法。
statusnumber触发此 hook 的 API 调用的响应状态码。
paramsobject触发此 hook 的 API 调用的请求 koa 路径参数。
matchedRoutestring触发此 hook 的 API 调用的 koa 匹配路由。Logto 使用此字段来匹配启用的 hook 事件。

数据负载体字段

用户事件

EventFieldTypeOptionalNotes
User.CreateddataUserEntity此事件创建的用户实体。
User.Data.UpdateddataUserEntity此事件更新的用户实体。
User.Deleteddatanull/

角色事件

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;
};
EventFieldTypeOptionalNotes
Role.CreateddataRole此事件创建的角色实体。
Role.Data.UpdateddataRole此事件更新的角色实体。
Role.Deleteddatanull
Role.Scope.UpdateddataScope[]分配给角色的更新权限。
Role.Scope.UpdatedroleIdstring分配权限的角色 ID。(仅在事件由创建具有预分配权限的新角色触发时可用)

权限(Scope)事件

EventFieldTypeOptionalNotes
Scope.CreateddataScope此事件创建的权限实体。
Scope.Data.UpdateddataScope此事件更新的权限实体。
Scope.Deleteddatanull/

组织事件

type Organization = {
id: string;
name: string;
description?: string;
customData: object;
createdAt: number;
};
EventFieldTypeOptionalNotes
Organization.CreateddataOrganization此事件创建的组织实体。
Organization.Data.UpdateddataOrganization此事件更新的组织实体。
Organization.Deleteddatanull/
Organization.Membership.Updateddatanull/

组织角色事件

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

组织权限(OrganizationScope)事件

EventFieldTypeOptionalNotes
OrganizationScope.CreateddataOrganizationScope创建的组织权限实体。
OrganizationScope.Data.UpdateddataOrganizationScope更新的组织权限实体。
OrganizationScope.Deleteddatanull/