Webhook
Logto Webhook 提供各種事件的即時通知,包括使用者帳號、角色、權限、組織、組織角色、組織權限,以及 使用者互動 的變更。
當事件被觸發時,Logto 會向你提供的 Endpoint URL 發送 HTTP 請求,內容包含事件的詳細資訊,例如使用者 ID、使用者名稱、電子郵件及其他相關細節(關於 payload 與 header 所包含的資料,請參閱 Webhook 請求)。你的應用程式可以處理這個請求並執行自訂動作,例如發送電子郵件或更新資料庫資料。
我們會根據用戶需求持續新增更多事件。如果你有特定業務需求,歡迎告訴我們。
為什麼要使用 Webhook?
Webhook 提供應用程式間的即時通訊,免除輪詢需求,實現資料的即時更新。它們簡化了應用程式整合與工作流程自動化,無需複雜程式碼或專有 API。
以下是 CIAM 常見 Webhook 使用案例:
- 發送電子郵件: 設定 Webhook,讓新使用者註冊時自動發送歡迎信,或在使用者從新裝置或地點登入時通知管理員。
- 發送通知: 設定 Webhook,當使用者註冊時觸發 CRM 系統的虛擬助理,提供即時客戶支援。
- 執行額外 API 呼叫: 設定 Webhook,根據使用者的電子郵件網域或 IP 位址驗證其存取權,然後使用 Logto Management API 指派具備資源權限的適當角色。
- 資料同步: 設定 Webhook,讓應用程式即時獲知如使用者帳號停用或刪除等變更。
- 產生報表: 設定 Webhook 接收使用者登入活動資料,並用於產生使用者參與度或使用模式報表。
術語
項目 | 說明 |
---|---|
Event(事件) | 當特定動作發生時,會觸發具有特定類型的 hook 事件。例如,當使用者完成註冊流程並建立新帳號時,Logto 會發出 PostRegister hook 事件。 |
Hook(鉤子) | 連接到特定事件的一個或一系列動作。動作可以是呼叫 API、執行程式碼片段等。 |
Webhook | hook 的一種子類型,表示以事件 payload 呼叫 API。 |
假設開發者希望在使用者透過新裝置登入時發送通知,可以新增一個 webhook,將 PostSignIn 事件呼叫其安全服務 API。 |
以下是在 Logto 中為 PostSignIn
事件啟用兩個 webhook 的範例:
常見問題
Logto 支援同步 webhook 嗎?
雖然同步 webhook 能讓使用者登入流程更順暢,但目前尚未支援(未來會支援)。因此,目前所有依賴同步 webhook 的情境都需要不同的替代方案。如有疑問,歡迎聯繫我們。
如何偵錯 webhook 超時?
接收 Webhook 的 endpoint 應盡快回傳 2xx 回應,告知 Logto Webhook 已成功接收。由於不同用戶對 Webhook 的處理邏輯差異極大,過於複雜的任務可能需數秒,導致 Logto Webhook 超時。最佳做法是維護自己的事件佇列;收到 Logto Webhook 時,將事件寫入佇列並立即回傳 2xx 給 Logto,然後讓自己的 worker 逐步處理佇列任務。若 worker 發生錯誤,請於自己的伺服器處理。
可以從 PostSignIn
webhook 取得 client IP 嗎?
PostSignIn
webhook 取得 client IP 嗎?可以,你可以在 Webhook payload 中取得 IP 位址、user agent 等資訊。如果需要目前未支援的資訊,歡迎在 GitHub issues 提出功能需求,或聯繫我們。