繁體中文(香港)
  • webhook
  • 歡迎電郵
  • 同步授權

真實案例:用 webhooks 擴展你的驗證系統

探索使用 Logto webhooks 進行驗證和授權的真實案例,包括發送歡迎電郵、將數據同步到你的資料庫、即時更新用戶角色/權限,以及與第三方分析工具整合。

Ran
Ran
Product & Design

使用 Logto webhook,你可以實時接收有關特定事件的更新,例如用戶註冊、登錄或重置密碼,而不需要持續輪詢更新。當事件被觸發時,Logto 會將包含有關事件信息的 HTTP 請求發送到你指定的端點 URL。你的應用程序可以接收請求並根據數據採取自定義操作,例如發送電郵或更新資料庫。

有一些功能你可能不會在 Logto 控制台中直接發現,但你可以考慮是否能使用 webhook 來監察你的用戶行為以達到它們。

Logto webhooks 的使用場景

Webhook 為驗證系統提供了無限的可能性。以下是一些真實的使用案例,我將舉例說明:

1. 發送電郵或通知

“我能否使用 Logto Email 向用戶發送附有登錄連結的自定義歡迎電郵?我們只使用驗證碼登入,沒有密碼。”

雖然 Logto 的電郵服務目前不支持直接發送歡迎電郵,但這是一個使用 webhooks 的經典場景。使用 User.Created 事件,當你的端點收到用戶註冊信息後,立即向用戶的電郵發送歡迎信。

類似地,在角色更新後通知用戶,通知管理員有新成員,或推送機器人信息到 Slack 或 Discord,讓你的團隊保持更新。

2. 數據同步

“如果我在管理控制台中刪除一個用戶,如何將這個狀況同步到其他系統?”

使用 User.Deleted 事件來獲取用戶被刪除的狀態變更並將其同步到其他系統。你還可以即時清除用戶的登入會話,這將有利於跨應用的用戶管理。

“我的 Logto tenant 下有幾個應用程序。我需要一個 webhook 來檢測用戶創建,確保它被一個特定的應用程序處理。”

使用 PostRegister 事件,Payload 將包含 AppId 信息,這將幫助你處理多個應用服務的個性化體驗設計。

3. 執行額外的 API 調用

“當我更改用戶權限時,他們需要登出並重新登錄才能使更新生效。可以自動完成嗎?”

如果管理員更改用戶角色或為用戶添加新權限,默認情況下,用戶需要重新登錄或同意更新訪問令牌。如果你希望授權更改立即生效,可以使用 webhook User.Data.Updated 進行通知,並相應地啟用重新同意或發放新訪問令牌。

此外,你還可以使用短訪問令牌過期時間或定期調用 Management API 端點來獲取用戶角色和權限,但只有通過 webhooks 你才能獲得最即時的更新。

“我想將每個新用戶添加到我的資料庫中,將他們引導到一個‘設置你的組織’頁面,並且只允許隨後的用戶進行組織邀請。Logto 能支持嗎?”

首先,需要數據同步,以使用 webhook Post.Register 將新用戶添加到你的資料庫。然後,使用 Logto 管理 API 設計你的設置組織和邀請的提示頁。

4. 數據分析

“我可以將 Logto 連接到我的分析工具(Google Analytics、Umami、Plausible 等)來追蹤用戶登錄嗎?”

如果你需要分析與用戶登錄或授權相關的數據,可以使用 Logto 的 webhook 功能。你可以監聽 Logto 發送的 webhooks ,然後將數據集成到第三方分析工具中。

確認你是否需要 webhooks

步驟 1:確認你所需的 Webhook 事件

Webhook 分為兩類,賬戶級別和組織級別,以下顯示所有事件

logto_webhook_events_for_authentication_and_authorization.webp

為了便利你的場景劃分和獲取匹配的數據,進行了詳細劃分。但是,如果你需要同時獲得多個事件的信息,可以選擇多個事件為一個 Webhook。

注意:“User Interaction”類型的事件捕獲用戶在UI中的操作,不包括由管理員發起的更改。“User”類型的事件涵蓋所有用戶操作,包括管理員和最終用戶的操作。例如,事件 PostRegister 指的是用戶在登錄體驗中的註冊,而 User.Created 包括所有用戶在 UI 界面中註冊的新用戶和由管理員添加的用戶。

步驟 2:確認請求 payload 是否有你需要的信息

不同事件攜帶不同的信息,你可以確認現有的信息是否能直接滿足你的用例需求。例如,idusernameprimary emailprofilecustomDataidentitieslastSignInAtcreatedAtapplicationIdisSuspendedOrganizationIdOrganizationRoleIdOrganizationScopeId 等。詳情請參考 Webhook 請求。如果不行,你也可以使用 Management API 繼續獲取相關用戶信息。

步驟 3:結合 Management API 擴展高級功能

你還可以使用 Logto Management API 實施進一步的管理和功能配置。

結論

Logto webhook 事件不僅涵蓋廣泛的場景,還通過驗證簽名鍵和自定義標頭來確保安全傳輸。你可以查看 Logto webhook 儀表板以 監控 Webhook 的傳輸情況 在過去的 24 小時內。