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

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

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

Ran
Ran
Product & Design

Stop wasting weeks on user auth
Launch secure apps faster with Logto. Integrate user auth in minutes, and focus on your core product.
Get started
Product screenshot

使用 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 小時內。