Logto 產品更新
Logto v1.40.0 帶來了審計日誌的時間範圍選擇器、更豐富的組織成員 Webhook 載體、大型組織的效能大幅提升,以及多項自託管體驗優化。
Logto v1.40.0 是一個強化平台的版本。它讓審計日誌在大規模情況下變得實用、在組織成員 Webhook 中精確告訴你哪裡有變動、大幅加快大型租戶下的組織查詢速度,並解決了部分自託管部署長期存在的使用障礙。此外還有三個全新連接器加入。以下是本次更新重點。
你真正能範圍篩選的審計日誌
審計日誌在發生事件的當下最有用——但之前 Console 會拉取全部資料,對於日誌量很大的租戶來說速度會很慢。
這個版本在審計日誌頁面加入了時間範圍選擇器,預設為最近 7 天。你可以選取預設範圍(如「過去 1 小時」、「過去 24 小時」、「過去 7 天」、「過去 30 天」)或自定義範圍,想查更早的資料只要加大時間區間即可(#8810)。
底層方面,管理 API 在 GET /api/logs 及 GET /api/hooks/{id}/recent-logs 加入了 start_time 和 end_time 查詢參數(unix 毫秒時間戳,為開區間),讓你也可以程式化篩選日誌(#8806)。針對超大型租戶,新增的 enableCap=true 參數會在查詢約 10,000 筆時中斷資料筆數查詢,並回傳 Total-Number-Is-Capped: true 標頭,用於換取不會觸發 statement_timeout 的回應;而當超出上限時 Console 會自動切換為上一頁/下一頁分頁模式(#8796, #8802)。未帶該參數的預設行為不變。
組織成員 Webhook 現於載體明確標示異動內容
Organization.Membership.Updated Webhook 以往只會告訴你「有成員狀態變化」,但不會說明變化細節。現在它會在所有會員端點的通知資料中直接傳遞異動內容——分別為 addedUserIds/removedUserIds 與 addedApplicationIds/removedApplicationIds,另外邀請接受及即時配置(如郵箱網域、企業 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)。
- SMTP 的
auth現可省略user及pass,支援 IP/VLAN 驗證下無需偽造憑證(#8888)。 - Connector Kit 加強 Email 品牌 URL 判斷,避免誤判縮寫,感謝 @aayushbaluni(#8747)。
給自託管使用者的專屬更新
幾項專為 OSS 部署優化的改動:
隔離網路下的管理員設置。
install及db 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 發布頁。

