ข้ามไปยังเนื้อหาหลัก

คำขอ Webhooks

เมื่อมีการปล่อยเหตุการณ์ hook ที่ถูกต้อง Logto จะค้นหา webhooks ที่เกี่ยวข้องและส่งคำขอ POST ต่อ hook config แต่ละรายการ

ส่วนหัวของคำขอ​

Keyปรับแต่งได้หมายเหตุ
user-agent✅ค่าเริ่มต้นคือ Logto (https://logto.io/)
content-type✅ค่าเริ่มต้นคือ application/json
logto-signature-sha-256ลายเซ็นของเนื้อหา request ดูที่ การรักษาความปลอดภัย webhook ของคุณ

คุณสามารถเขียนทับส่วนหัวที่ปรับแต่งได้โดย ปรับแต่ง request ด้วย key เดียวกัน

เนื้อหาคำขอของเหตุการณ์ interaction hook​

เหตุการณ์ที่ใช้ได้: PostRegister, PostSignIn, PostResetPassword

เนื้อหาคำขอเป็นวัตถุ JSON ที่มีข้อมูล 3 ประเภทดังนี้:

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;
};
FieldTypeOptionalหมายเหตุ
hookIdstringตัวระบุใน Logto
eventstringเหตุการณ์ที่เรียกใช้ hook นี้
createdAtstringเวลาสร้าง payload ในรูปแบบ ISO
interactionEventstringเหตุการณ์ interaction ที่เรียกใช้ hook นี้
sessionIdstring✅Session ID (ไม่ใช่ Interaction ID) สำหรับเหตุการณ์นี้ (ถ้ามี)
userAgentstring✅user-agent ของคำขอที่เรียกใช้ hook นี้
userIpstring✅ที่อยู่ IP ของคำขอที่เรียกใช้ hook นี้
userIdstring✅User ID ที่เกี่ยวข้องกับเหตุการณ์นี้ (ถ้ามี)
userUserEntity✅user entity ที่เกี่ยวข้องกับเหตุการณ์นี้ (ถ้ามี)
applicationIdstring✅Application ID ที่เกี่ยวข้องกับเหตุการณ์นี้ (ถ้ามี)
applicationApplicationEntity✅ข้อมูลแอปพลิเคชันที่เกี่ยวข้องกับเหตุการณ์นี้ (ถ้ามี)

ดูข้อมูลอ้างอิง ผู้ใช้ และ แอปพลิเคชัน สำหรับคำอธิบายแต่ละฟิลด์โดยละเอียด

เนื้อหาคำขอของเหตุการณ์ data mutation hook​

ฟิลด์มาตรฐานของเนื้อหาคำขอ​

FieldTypeOptionalหมายเหตุ
hookIdstringตัวระบุใน Logto
eventstringเหตุการณ์ที่เรียกใช้ hook นี้
createdAtstringเวลาสร้าง payload ในรูปแบบ ISO
userAgentstring✅user-agent ของคำขอ
ipstring✅ที่อยู่ IP ของคำขอ

ฟิลด์ context body ของ Interaction API​

เหตุการณ์ data mutation hook ที่ถูกเรียกโดยการเรียก API interaction ของผู้ใช้

เหตุการณ์ที่ใช้ได้: User.Created, User.Data.Updated

FieldTypeOptionalหมายเหตุ
interactionEventstring✅เหตุการณ์ interaction ที่เรียกใช้ hook นี้
sessionIdstring✅Session ID (ไม่ใช่ Interaction ID) สำหรับเหตุการณ์นี้ (ถ้ามี)
applicationIdstring✅Application ID ที่เกี่ยวข้องกับเหตุการณ์นี้ (ถ้ามี)
applicationApplicationEntity✅ข้อมูลแอปพลิเคชันที่เกี่ยวข้องกับเหตุการณ์นี้ (ถ้ามี)

ฟิลด์ context body ของ Management API​

เหตุการณ์ data mutation hook ที่ถูกเรียกโดยการเรียก Management API

FieldTypeOptionalหมายเหตุ
pathstring✅path ของ API call ที่เรียกใช้ hook นี้
methodstring✅method ของ API call ที่เรียกใช้ hook นี้
statusnumber✅รหัสสถานะตอบกลับของ API call ที่เรียกใช้ hook นี้
paramsobject✅koa path params ของ API call ที่เรียกใช้ hook นี้
matchedRoutestring✅koa matched route ของ API call ที่เรียกใช้ hook นี้ Logto ใช้ฟิลด์นี้เพื่อจับคู่กับเหตุการณ์ hook ที่เปิดใช้งาน

ฟิลด์เนื้อหาข้อมูล (data payload body fields)​

เหตุการณ์ผู้ใช้

EventFieldTypeOptionalหมายเหตุ
User.CreateddataUserEntityuser entity ที่ถูกสร้างสำหรับเหตุการณ์นี้
User.Data.UpdateddataUserEntityuser entity ที่ถูกอัปเดตสำหรับเหตุการณ์นี้
User.Deleteddatanull/

เหตุการณ์บทบาท (Role events)

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;
};
EventFieldTypeOptionalหมายเหตุ
Role.CreateddataRoleentity บทบาทที่ถูกสร้างสำหรับเหตุการณ์นี้
Role.Data.UpdateddataRoleentity บทบาทที่ถูกอัปเดตสำหรับเหตุการณ์นี้
Role.Deleteddatanull
Role.Scope.UpdateddataScope[]scopes ที่ถูกอัปเดตและกำหนดให้กับบทบาทนี้
Role.Scope.UpdatedroleIdstring✅role ID ที่ scopes ถูกกำหนดให้ (มีเฉพาะเมื่อเหตุการณ์ถูกเรียกโดยการสร้างบทบาทใหม่พร้อมกำหนด scopes ล่วงหน้า)

เหตุการณ์สิทธิ์ (Permission / Scope events)

EventFieldTypeOptionalหมายเหตุ
Scope.CreateddataScopeentity scope ที่ถูกสร้างสำหรับเหตุการณ์นี้
Scope.Data.UpdateddataScopeentity scope ที่ถูกอัปเดตสำหรับเหตุการณ์นี้
Scope.Deleteddatanull/

เหตุการณ์องค์กร (Organization events)

type Organization = {
id: string;
name: string;
description?: string;
customData: object;
createdAt: number;
};
EventFieldTypeOptionalหมายเหตุ
Organization.CreateddataOrganizationentity องค์กรที่ถูกสร้างสำหรับเหตุการณ์นี้
Organization.Data.UpdateddataOrganizationentity องค์กรที่ถูกอัปเดตสำหรับเหตุการณ์นี้
Organization.Deleteddatanull/
Organization.Membership.Updateddatanull/

เหตุการณ์ OrganizationRole

type OrganizationRole = {
id: string;
name: string;
description?: string;
};
type OrganizationScope = {
id: string;
name: string;
description?: string;
};
EventFieldTypeOptionalหมายเหตุ
OrganizationRole.CreateddataOrganizationRoleentity บทบาทองค์กรที่ถูกสร้างสำหรับเหตุการณ์นี้
OrganizationRole.Data.UpdateddataOrganizationRoleentity บทบาทองค์กรที่ถูกอัปเดตสำหรับเหตุการณ์นี้
OrganizationRole.Deleteddatanull/
OrganizationRole.Scope.Updateddatanull/
OrganizationRole.Scope.UpdatedorganizationRoleIdstring✅role ID ที่ scopes ถูกกำหนดให้ (มีเฉพาะเมื่อเหตุการณ์ถูกเรียกโดยการสร้างบทบาทใหม่พร้อมกำหนด scopes ล่วงหน้า)

เหตุการณ์สิทธิ์ขององค์กร (Organization permission / OrganizationScope events)

EventFieldTypeOptionalหมายเหตุ
OrganizationScope.CreateddataOrganizationScopeentity scope ขององค์กรที่ถูกสร้าง
OrganizationScope.Data.UpdateddataOrganizationScopeentity scope ขององค์กรที่ถูกอัปเดต
OrganizationScope.Deleteddatanull/