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

คำขอ Webhooks

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

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

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

คุณสามารถเขียนทับ header ที่ปรับแต่งได้โดย ปรับแต่ง request header ด้วย 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;
};
enum ApplicationType {
Native = 'Native',
SPA = 'SPA',
Traditional = 'Traditional',
MachineToMachine = 'MachineToMachine',
Protected = 'Protected',
SAML = 'SAML',
}

type ApplicationEntity = {
id: string;
type: ApplicationType;
name: string;
description?: string;
};
FieldTypeOptionalหมายเหตุ
hookIdstringตัวระบุใน Logto
eventstringเหตุการณ์ที่เรียกใช้ hook นี้
createdAtstringเวลาสร้าง payload ในรูปแบบ ISO
interactionEventstringเหตุการณ์ interaction ที่เรียกใช้ hook นี้
sessionIdstringSession ID (ไม่ใช่ Interaction ID) สำหรับเหตุการณ์นี้ (ถ้ามี)
userAgentstringuser-agent ของคำขอที่เรียกใช้ hook นี้
userIpstringที่อยู่ IP ของคำขอที่เรียกใช้ hook นี้
userIdstringUser ID ที่เกี่ยวข้องกับเหตุการณ์นี้ (ถ้ามี)
userUserEntityuser entity ที่เกี่ยวข้องกับเหตุการณ์นี้ (ถ้ามี)
applicationIdstringApplication ID ที่เกี่ยวข้องกับเหตุการณ์นี้ (ถ้ามี)
applicationApplicationEntityข้อมูลแอปพลิเคชันที่เกี่ยวข้องกับเหตุการณ์นี้ (ถ้ามี)

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

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

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

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

ฟิลด์ context ของ Interaction API

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

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

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

ฟิลด์ context ของ Management API

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

FieldTypeOptionalหมายเหตุ
pathstringpath ของ API call ที่เรียกใช้ hook นี้
methodstringmethod ของ API call ที่เรียกใช้ hook นี้
statusnumberรหัสสถานะตอบกลับของ API call ที่เรียกใช้ hook นี้
paramsobjectkoa path params ของ API call ที่เรียกใช้ hook นี้
matchedRoutestringkoa matched route ของ API call ที่เรียกใช้ hook นี้ Logto ใช้ field นี้เพื่อจับคู่กับ hook events ที่เปิดใช้งาน

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

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

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

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

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

เหตุการณ์ OrganizationRole

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

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

EventFieldTypeOptionalหมายเหตุ
OrganizationScope.CreateddataOrganizationScopeorganization scope entity ที่ถูกสร้าง
OrganizationScope.Data.UpdateddataOrganizationScopeorganization scope entity ที่ถูกอัปเดต
OrganizationScope.Deleteddatanull/

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

เหตุการณ์ที่ใช้ได้: Identifier.Lockout

เนื้อหาคำขอเป็นอ็อบเจกต์ JSON ที่มีฟิลด์มาตรฐานของเนื้อหาคำขอและฟิลด์เพิ่มเติมดังนี้:

enum SignInIdentifier {
Email = 'email',
Phone = 'phone',
Username = 'username',
}
FieldTypeOptionalหมายเหตุ
hookIdstringตัวระบุใน Logto
eventstringเหตุการณ์ที่เรียกใช้ hook นี้
createdAtstringเวลาสร้าง payload ในรูปแบบ ISO
userAgentstringuser-agent ของคำขอ
ipstringที่อยู่ IP ของคำขอ
interactionEventstringเหตุการณ์ interaction ที่เรียกใช้ hook นี้
sessionIdstringSession ID (ไม่ใช่ Interaction ID) สำหรับเหตุการณ์นี้ (ถ้ามี)
applicationIdstringApplication ID ที่เกี่ยวข้องกับเหตุการณ์นี้ (ถ้ามี)
applicationApplicationEntityข้อมูลแอปพลิเคชันที่เกี่ยวข้องกับเหตุการณ์นี้ (ถ้ามี)
typeSignInIdentifierประเภท identifier ของผู้ใช้ เช่น email, phone หรือ username
valuestringค่า identifier ของผู้ใช้ที่ทำให้เกิด lockout