Webhooks 事件
本指南列出了不同的 Logto Webhook 事件,并解释了每个事件发生的时机。
用户交互 Hook 事件
| 事件类型 | 描述 |
|---|---|
| PostRegister | 用户通过 UI 界面成功创建新账户。 |
| PostSignIn | 用户通过 UI 界面成功登录。 |
| PostResetPassword | 用户通过“忘记密码”流程成功重置密码。 |
数据变更 Hook 事件
用户
| 事件类型 | 描述 |
|---|---|
| User.Created | 创建了新用户账户。 |
| User.Deleted | 删除了用户账户。 |
| User.Data.Updated | 用户资料数据被更新,例如邮箱、头像、custom.data、社交标识等。 |
| User.SuspensionStatus.Updated | 用户的封禁状态发生变化(被封禁或重新激活)。 |
角色 (Role)
| 事件类型 | 描述 |
|---|---|
| Role.Created | 创建了新角色。 |
| Role.Deleted | 删除了角色。 |
| Role.Data.Updated | 角色数据被更新,例如角色名称、描述和默认角色状态。 |
| Role.Scopes.Updated | 分配给角色的权限被添加或移除。 |
权限 (Scope)
| 事件类型 | 描述 |
|---|---|
| Scope.Created | 创建了新的 API 权限。 |
| Scope.Deleted | 删除了 API 权限。 |
| Scope.Data.Updated | API 权限数据被更新,例如权限描述。 |
组织 (Organization)
| 事件类型 | 描述 |
|---|---|
| Organization.Created | 创建了新组织。 |
| Organization.Deleted | 删除了组织。 |
| Organization.Data.Updated | 组织数据被更新,例如组织名称、描述、custom.data 等。 |
| Organization.Membership.Updated | 用户或应用被添加到组织或从组织移除。Payload 包含 成员变更字段。 |
组织角色 (Organization role)
| 事件类型 | 描述 |
|---|---|
| OrganizationRole.Created | 创建了新的组织角色。 |
| OrganizationRole.Deleted | 删除了组织角色。 |
| OrganizationRole.Data.Updated | 组织角色数据被更新,例如组织角色名称和描述。 |
| OrganizationRole.Scopes.Updated | 分配给组织角色的权限被添加或移除。 |
组织权限 (Organization permission / scope)
| 事件类型 | 描述 |
|---|---|
| OrganizationScope.Created | 创建了新的组织权限。 |
| OrganizationScope.Deleted | 删除了组织权限。 |
| OrganizationScope.Data.Updated | 组织权限数据被更新,例如组织权限描述。 |
Management API 触发的事件
| API endpoint | 事件 |
|---|---|
| POST /users | User.Created |
| DELETE /users/:userId | User.Deleted |
| PATCH /users/:userId | User.Data.Updated |
| PATCH /users/:userId/custom-data | User.Data.Updated |
| PATCH /users/:userId/profile | User.Data.Updated |
| PATCH /users/:userId/password | User.Data.Updated |
| PATCH /users/:userId/is-suspended | User.SuspensionStatus.Updated |
| POST /roles | Role.Created, (Role.Scopes.Update) |
| DELETE /roles/:id | Role.Deleted |
| PATCH /roles/:id | Role.Data.Updated |
| POST /roles/:id/scopes | Role.Scopes.Updated |
| DELETE /roles/:id/scopes/:scopeId | Role.Scopes.Updated |
| POST /resources/:resourceId/scopes | Scope.Created |
| DELETE /resources/:resourceId/scopes/:scopeId | Scope.Deleted |
| PATCH /resources/:resourceId/scopes/:scopeId | Scope.Data.Updated |
| POST /organizations | Organization.Created |
| DELETE /organizations/:id | Organization.Deleted |
| PATCH /organizations/:id | Organization.Data.Updated |
| PUT /organizations/:id/users | Organization.Membership.Updated |
| POST /organizations/:id/users | Organization.Membership.Updated |
| DELETE /organizations/:id/users/:userId | Organization.Membership.Updated |
| PUT /organizations/:id/applications | Organization.Membership.Updated |
| POST /organizations/:id/applications | Organization.Membership.Updated |
| DELETE /organizations/:id/applications/:applicationId | Organization.Membership.Updated |
| PUT /organization-invitations/:id/status (Accepted) | Organization.Membership.Updated |
| POST /organization-roles | OrganizationRole.Created, (OrganizationRole.Scopes.Updated) |
| DELETE /organization-roles/:id | OrganizationRole.Deleted |
| PATCH /organization-roles/:id | OrganizationRole.Data.Updated |
| POST /organization-scopes | OrganizationScope.Created |
| DELETE /organization-scopes/:id | OrganizationScope.Deleted |
| PATCH /organization-scopes/:id | OrganizationScope.Data.Updated |
| PUT /organization-roles/:id/scopes | OrganizationRole.Scopes.Updated |
| POST /organization-roles/:id/scopes | OrganizationRole.Scopes.Updated |
| DELETE /organization-roles/:id/scopes/:organizationScopeId | OrganizationRole.Scopes.Updated |
Experience API 触发的事件
| 用户交互操作 | 事件 |
|---|---|
| 用户邮箱 / 手机号绑定 | User.Data.Updated |
| 用户 MFA 绑定 | User.Data.Updated |
| 用户社交 / SSO 绑定 | User.Data.Updated |
| 用户密码重置 | User.Data.Updated |
| 用户注册 | User.Created |
| 用户通过 即时供应(匹配邮箱域名或企业 SSO 连接器)被自动加入组织 | Organization.Membership.Updated |
异常 Hook 事件
安全
| 事件类型 | 描述 |
|---|---|
| Identifier.Lockout | 由于连续身份验证失败,用户账户被锁定。可在以下流程中触发:
|
| Message.RateLimited | 终端用户超过了每个收件人的发送速率限制(用于验证码)。仅在终端用户发送路径(Experience API 和 Account API)触发,payload 为 { action, recipient }。 |
常见问题
PostRegister 和 User.Created 有什么区别?
PostRegister 和 User.Created 有什么区别?PostRegister 在用户通过注册流程成功创建新账户时触发;User.Created 在通过 Management API 创建新用户账户时触发。