跳到主要内容

Webhooks 请求

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

请求头​

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

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

交互 hook 事件请求体​

可用事件:PostRegister,PostSignIn,PostResetPassword

请求体是一个包含三种类型数据字段的 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.Created,User.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/