ตั้งค่า webhooks
ตั้งค่า webhooks ใน Logto Console เพื่อการผสานรวมที่ไร้รอยต่อและรับการแจ้งเตือนเหตุการณ์แบบเรียลไทม์สำหรับแอปพลิเคชันของคุณ เพลิดเพลินกับการตั้งค่าที่ง่าย ความปลอดภัยที่เพิ่มขึ้น และตัวเลือกการตรวจสอบสุขภาพที่สะดวก
สร้าง webhook
ก่อนอื่น สร้าง endpoint สำหรับ webhook ที่จะถูกเรียกโดย Logto Agent endpoint นี้ควรติดตั้งบนเซิร์ฟเวอร์ของคุณและสามารถรับ HTTP requests ได้
ในการสร้าง webhook ใหม่ใน Logto Console ให้ทำตามขั้นตอนดังนี้:
-
สร้าง webhook: ไปที่ Console > Webhooks แล้วคลิกปุ่ม "Create webhook"
-
ชื่อ: กำหนดชื่อสำหรับ webhook เพื่อใช้อ้างอิงและระบุสถานการณ์การใช้งาน
-
Endpoint URL: กรอก
Endpoint URLซึ่งเป็น URL ของเซิร์ฟเวอร์คุณที่จะรับ webhook POST requests เมื่อเกิดเหตุการณ์ขึ้น เพื่อความปลอดภัย URL นี้ต้องเข้าถึงได้แบบสาธารณะผ่าน HTTPS และไม่ควรเป็น URL ของ localhostบันทึก:เซิร์ฟเวอร์ของคุณควรตอบกลับ webhook request จาก Logto ด้วย HTTP 200 ("OK") ทันทีหลังได้รับคำขอ เพื่อแจ้งว่าได้รับคำขอแล้ว
การรอให้ตรรกะของ event ใน Webhook ประมวลผลเสร็จก่อนตอบกลับ อาจทำให้ Webhook หมดเวลา (timeout)
อย่าตอบกลับ Logto webhook ด้วยรหัสอื่นที่ไม่ใช่ 200 หากเกิดข้อผิดพลาดขณะประมวลผล event ให้จัดการที่เซิร์ฟเวอร์ของคุณเอง
-
Event: ในหน้าต่าง modal ที่ปรากฏขึ้น ให้เลือก เหตุการณ์ (events) ที่ต้องการให้ webhook นี้ทำงาน แนะนำให้เลือกเฉพาะเหตุการณ์ที่จำเป็นเพื่อลดภาระการรับข้อมูลของเซิร์ฟเวอร์ คุณสามารถเปลี่ยนเหตุการณ์ที่เลือกได้ตลอดเวลาหลังสร้าง webhook
-
ปิดใช้งาน / เปิดใช้งานอีกครั้ง: โดยปกติ webhook จะถูกเปิดใช้งานทันทีหลังสร้าง หากต้องการหยุดใช้งานชั่วคราว คุณสามารถปิดหรือเปิดใช้งานอีกครั้งได้โดยใช้เมนู "สามจุด" ที่มุมขวาบนของหัวข้อหลังจากสร้างแล้ว
รักษาความปลอดภัย webhook
เมื่อเซิร์ฟเวอร์ของคุณพร้อมรับ webhook requests แล้ว คุณอาจต้องการให้แน่ใจว่าสามารถจัดการคำขอเหล่านี้ได้อย่างปลอดภัย Logto จะสร้างลายเซ็น (signature) สำหรับ payload ของแต่ละ webhook request ซึ่งช่วยให้คุณตรวจสอบได้ว่าคำขอมาจาก Logto จริง
หลังจากสร้าง webhook ใหม่ คุณมีตัวเลือกเพื่อเพิ่มความปลอดภัยดังนี้:
- Signing key: Logto จะสร้าง hash signature เฉพาะ เรียกว่า Signing Key สำหรับแต่ละ webhook คุณสามารถใส่ key นี้เป็น request header ใน endpoint ของคุณ การตรวจสอบ signing key จะช่วยยืนยันว่า payload ของ webhook มาจาก Logto และไม่ถูกแก้ไขโดยแหล่งที่ไม่ได้รับอนุญาต อ่าน การรักษาความปลอดภัย webhook ของคุณ เพื่อดูรายละเอียดโค้ดเพิ่มเติม
- Custom header: คุณสามารถเพิ่ม custom headers ใน payload ของ webhook เพื่อให้ข้อมูลหรือ metadata เพิ่มเติม ฟีเจอร์นี้ช่วยให้คุณใส่ข้อมูลที่เกี่ยวข้องเพื่อช่วยในการประมวลผลข้อมูล webhook ได้อย่างมีประสิทธิภาพ
ด้วยการใช้ Signing Key และพิจารณาการเพิ่ม Custom Headers คุณจะสามารถเพิ่มความปลอดภัยให้กับ webhook และรับรองความถูกต้องและความสมบูรณ์ของ payload ที่ได้รับ
ทดสอบ webhook
เพื่อทดสอบการเชื่อมต่อระหว่าง Logto กับบริการของคุณ เพียงคลิกปุ่ม "Send test payload" Logto จะส่ง payload ตัวอย่างสำหรับแต่ละ event ที่เลือกไปยัง endpoint URL ของคุณ คำขอทดสอบเหล่านี้จะมีข้อมูลแบบไม่ระบุตัวตนและจะไม่ถูกบันทึกในประวัติคำขอล่าสุด
การทดสอบนี้ช่วยให้มั่นใจว่า webhook ของคุณตั้งค่าอย่างถูกต้องเพื่อรับและประมวลผล payload จาก Logto และช่วยให้คุณตรวจสอบการผสานรวมก่อนนำ webhook ไปใช้จริง
ตรวจสอบสถานะสุขภาพของ Webhook
Logto มีเครื่องมือที่สะดวกสำหรับตรวจสอบสถานะสุขภาพของ webhook ของคุณและตรวจสอบปัญหาต่าง ๆ ได้อย่างละเอียด:
- สถานะสุขภาพ รายการ webhook ใน Logto จะแสดงสถานะสุขภาพของแต่ละ webhook รวมถึงอัตราความสำเร็จและจำนวนคำขอทั้งหมดใน 24 ชั่วโมงที่ผ่านมา ข้อมูลนี้ช่วยให้คุณเห็นภาพรวมของประสิทธิภาพ webhook
- บันทึกคำขอแยกอิสระ ในส่วน "Recent Requests" ของแต่ละ webhook คุณสามารถเข้าถึงบันทึกคำขอใน 24 ชั่วโมงที่ผ่านมา โดยแต่ละคำขอจะถูกบันทึกแยกกัน ทำให้คุณสามารถดูรายละเอียดของแต่ละคำขอและตรวจสอบข้อผิดพลาดหรือความผิดปกติได้
- ลองส่งใหม่อัตโนมัติ
หากเกิดความล้มเหลวในการส่ง (เมื่อ webhook ตอบกลับด้วยสถานะมากกว่าหรือเท่ากับ 500) Logto จะลองส่งใหม่โดยอัตโนมัติสูงสุดสามครั้ง มั่นใจได้ว่าการลองส่งซ้ำหลายครั้งของคำขอเดียวกันจะสร้างบันทึกเพียงรายการเดียวเท่านั้นเพื่อหลีกเลี่ยงความซ้ำซ้อนที่ไม่จำเป็น การลองส่งซ้ำทั้งหมดของคำขอจะใช้
deliveryIdเดียวกันใน payload ดังนั้น endpoint ของคุณสามารถ ข้ามการส่งที่ได้ประมวลผลไปแล้ว
ด้วยการใช้ฟีเจอร์การตรวจสอบเหล่านี้ คุณจะสามารถติดตามสุขภาพของ webhook ได้อย่างมีประสิทธิภาพ ตรวจสอบบันทึกคำขอ และรับรองความน่าเชื่อถือและประสิทธิภาพของการผสานรวม webhook ของคุณ