繁體中文(香港)
  • 發布

Logto 產品更新

Logto v1.40.0 帶來了審計日誌的時間範圍選擇器、更豐富的組織成員 Webhook 載體、大型組織的效能大幅提升,以及多項自託管體驗優化。

Yijun
Yijun
Developer

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 v1.40.0 是一個強化平台的版本。它讓審計日誌在大規模情況下變得實用、在組織成員 Webhook 中精確告訴你哪裡有變動、大幅加快大型租戶下的組織查詢速度,並解決了部分自託管部署長期存在的使用障礙。此外還有三個全新連接器加入。以下是本次更新重點。

你真正能範圍篩選的審計日誌

審計日誌在發生事件的當下最有用——但之前 Console 會拉取全部資料,對於日誌量很大的租戶來說速度會很慢。

這個版本在審計日誌頁面加入了時間範圍選擇器,預設為最近 7 天。你可以選取預設範圍(如「過去 1 小時」、「過去 24 小時」、「過去 7 天」、「過去 30 天」)或自定義範圍,想查更早的資料只要加大時間區間即可(#8810)。

底層方面,管理 API 在 GET /api/logsGET /api/hooks/{id}/recent-logs 加入了 start_timeend_time 查詢參數(unix 毫秒時間戳,為開區間),讓你也可以程式化篩選日誌(#8806)。針對超大型租戶,新增的 enableCap=true 參數會在查詢約 10,000 筆時中斷資料筆數查詢,並回傳 Total-Number-Is-Capped: true 標頭,用於換取不會觸發 statement_timeout 的回應;而當超出上限時 Console 會自動切換為上一頁/下一頁分頁模式(#8796, #8802)。未帶該參數的預設行為不變。

組織成員 Webhook 現於載體明確標示異動內容

Organization.Membership.Updated Webhook 以往只會告訴你「有成員狀態變化」,但不會說明變化細節。現在它會在所有會員端點的通知資料中直接傳遞異動內容——分別為 addedUserIdsremovedUserIdsaddedApplicationIdsremovedApplicationIds,另外邀請接受及即時配置(如郵箱網域、企業 SSO JIT)事件也包含 addedUserIds#8840)。

這是完全向後兼容且僅擴展的改進:如果異動內容空白就不出現該字段,批量操作時每個陣列最多 5000 筆(超出時請用 GET /organizations/:id/users.../applications 對帳)。完整資料格式請見 Webhook 文件。這也取代了早期的社群提案——致謝 @chiche84#8752)。

同時,GET /api/my-account/sessions 也新增了每筆資料的 isCurrent 標記,讓 Session 管理介面能標註「此裝置」那一列,避免誤刪使用者當前 Session(#8731)。

組織用戶量大也能保持極速

針對超大組織租戶進行了多項優化:

  • GET /organizations/:id/users 現在透過 LATERAL 子查詢聚合角色,因此會在角色查詢前先根據 LIMIT 篩選用戶,避免每個分頁都計算完整 members × roles 連接(#8826)。
  • 新增兩個輔助索引提升查詢速度:一個加在 organization_user_relations (tenant_id, user_id)(影響每次登入及中介軟體),另一個加在 organization_role_user_relations (tenant_id, organization_id, user_id)(影響 getUserScopes 與單用戶角色查詢)(#8818, #8819)。
  • PUT /organizations/:id/users 改採差異查詢法,只會寫入實際異動的行數,不再每次重寫所有成員關係資料,並且保留未變動成員的原有角色設定(#8820)。

帳號中心及登入流程小幅優化

  • 從登入至註冊的條款同意。 若同意政策設為「僅註冊時需要勾選」,在用未註冊信箱/手機登入並選擇「建立新帳號」時,現在會在建立帳號前要求同意條款——與一般註冊及 Social/SSO 流程保持一致(#8835)。
  • 首次設置密碼。 沒有密碼、email、手機的用戶,現在可透過 Account API 直接設置第一組密碼,無需驗證紀錄(#8746)。
  • 靜默再驗證。 用戶資訊取得失敗(如同一瀏覽器切換使用者導致 access token 失效)時,Account Center 會用 prompt=none 靜默再驗證,而不是直接跳回登入畫面,感謝 @taka-guevara#8785)。
  • Session 過期/社交登入回調優化。 帳號中心 Session 過期時改為自動重導,不再閃現需手動登入的錯誤訊息(#8830);社交追蹤回調能正確讀取 connectorId#8758);雙步認證切換標籤也更清晰(#8792)。
  • 國際化。 感謝 @rotempasharel1 更正 MFA 相關用語的「Passkey」中文翻譯(#8870)。

全新及升級連接器

本次更新新增 3 個連接器,並升級多項現有連接器(其中多個來自社群貢獻):

  • MailJunky 電郵連接器,用於發送權杖驗證信,感謝 @devadarshh#8638)。
  • SMSBao 國內短信認證連接器,感謝 @wintbiit#8871)。
  • 阿里雲 SMS 認證服務 連接器,感謝 @CertStone#8385)。
  • Aliyun Direct Mail 現支援設定郵件區域(#8892)。
  • WeCom 經額外 API 查詢載入更多用戶資訊,感謝 @liyujun-dev#8191)。
  • SMTPauth 現可省略 userpass,支援 IP/VLAN 驗證下無需偽造憑證(#8888)。
  • Connector Kit 加強 Email 品牌 URL 判斷,避免誤判縮寫,感謝 @aayushbaluni#8747)。

給自託管使用者的專屬更新

幾項專為 OSS 部署優化的改動:

隔離網路下的管理員設置。 installdb seed 指令現支援 --dapc 參數(或 --disable-admin-pwned-password-check)。管理員租戶預設密碼政策開啟 Have I Been Pwned 與 api.pwnedpasswords.com 的密碼外洩檢查,每次密碼送出都會連線外部 API——當外部網路無法連線時會導致首次管理員註冊卡住。加上 --dapc 將會種下不啟用外洩密碼檢查的政策,管理員註冊不再仰賴網路。感謝 @darcyYe#8859)。

從資料庫取得管理員簽名金鑰。 OSS 部署現在會直接從資料庫讀取管理員租戶的金鑰,不再需要 Logto 容器對外經由 DNS 設定回頭抓本地 OIDC 設定(#8869)。

需要遷移。 v1.40.0 帶來了資料庫結構異動(新組織關聯索引及內部欄位)。拉取新版後請先執行資料庫結構調整,然後再啟動伺服器。詳情見升級指引

立即開始

準備升級了嗎?請參考我們的 升級指引 按步驟操作。

完整更新清單請見 GitHub 發布頁

有問題或意見?歡迎加入我們的 Discord,或到 GitHub 開 Issue 與我們交流。