繁體中文(香港)
  • release

Logto 產品更新

Logto v1.39.0 全新登場,帶來更安全的簽名密鑰輪換、更智能的 JWT 腳本錯誤處理、更完善的帳戶中心安全控制、支援 WhatsApp 連接器,並針對密鑰安全性作出多項改進

Simeng
Simeng
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.39.0,此版本聚焦於提升操作安全性、令權杖自訂更靈活,以及加強用戶帳戶安全。這次更新新增了私有簽名密鑰輪換寬限期、自訂 JWT 腳本錯誤處理選項、新增帳戶中心安全頁面、透過 Meta Cloud API 支援 WhatsApp 連接器,並於認證流程中引入多項安全與穩定性改進。

重點亮點

  • 私有簽名密鑰輪換寬限期:Logto 現已支援在輪換私有簽名密鑰時設定寬限期,協助客戶端於無停機下刷新 JWKS 快取。
  • 自訂 JWT 腳本錯誤處理:自訂存取權杖與用戶端憑證 JWT 腳本,現可於腳本失敗時阻止權杖發放。
  • 帳戶中心安全頁面:最終用戶現可於帳戶中心管理社交帳號連結、MFA 多重驗證及帳戶刪除。
  • WhatsApp 連接器:全新 WhatsApp SMS 連接器現可經由 Meta Cloud API 使用。
  • 安全及相容性修正:忘記密碼驗證回應已統一,減低帳戶列舉風險;同時提升應用程式內瀏覽器的社交及 SSO 重新導向穩定性。

新功能與增強

私有簽名密鑰輪換寬限期

Logto 現已支援私有簽名密鑰輪換期間的寬限期。

這項功能可透過下列方式設定:

  • 設定 PRIVATE_KEY_ROTATION_GRACE_PERIOD 環境變數。
  • 使用 --gracePeriod CLI 選項。

於寬限期期間:

  • 新產生的簽名密鑰標記為 Next
  • 現有簽名密鑰會繼續以 Current 狀態運作。
  • 客戶端有時間於新密鑰生效前刷新 JWKS 快取。

寬限期結束後:

  • 新簽名密鑰會移至 Current 狀態。
  • 舊密鑰標記為 Previous

這樣能夠令密鑰輪換過程更順暢,並有效避免因過時 JWKS 快取導致的認證失敗。

文件連結:輪換簽名密鑰

自訂 JWT 腳本錯誤處理

Logto 現支援針對自訂 JWT 腳本錯誤進行可設定的處理,適用於 access token 及 client credentials 流程。

包含的變更:

  • 自訂 JWT 腳本若執行失敗,可選擇阻止權杖發放。
  • api.denyAccess() 仍返回 access_denied 回應。
  • 其他阻斷模式下的腳本失敗則會返回本地化的 invalid_request 回應。
  • 後台新增 錯誤處理 分頁便於設定此行為。
  • 新增的腳本預設啟用 blockIssuanceOnError
  • 未設定此值的現有腳本則維持舊制度預設關閉。
  • 相關後台說明、提示詞、結構與整合覆蓋皆已更新。

開發者可按自身安全需求選擇權杖自訂失效時採開放模式還是封閉模式。

帳戶中心安全頁面

本次更新於自帶帳戶中心新增安全頁面。

用戶現可於 /account/security 管理帳戶安全,包括:

  • 連結及解除連結社交帳戶
  • MFA 兩步驗證
  • 帳戶刪除

後台支援:

  • 登入體驗的帳戶中心設定現已顯示「刪除帳戶」 URL 欄位。
  • 後台可見帳戶中心及社交預設介面選項。

WhatsApp 連接器 (Meta Cloud API)

新增 WhatsApp 連接器,可經由 Meta Cloud API 傳送訊息。

此功能容許你利用官方 Meta Cloud API 整合於 WhatsApp 通道傳送 SMS/驗證碼。

組織分配 API 回應內容

組織用戶與角色分配 API 現已支援回應內容。

更新端點:

  • POST /organizations/:id/users 現將回傳 { userIds: string[] },反映於請求中傳送的 user ID。
  • POST /organizations/:id/users/:userId/roles 則將回傳 { organizationRoleIds: string[] },包含最終分配至該用戶的唯一角色 ID (包括由角色名稱解析出來的 ID)。

後台主題權杖更新

後台主題現已補上缺失的 --color-overlay-primary-subtle 權杖,支援亮色及暗色模式。

Bug 修正及穩定性

忘記密碼驗證防列舉保護

忘記密碼驗證現統一回傳 verification_code.code_mismatch 錯誤。

這有助避免通過不同錯誤回應曝光電郵或電話號是否存在。

應用程式內瀏覽器的社交及 SSO 重新導向

於 Instagram、Facebook、LINE 等 app 內瀏覽器改善了社交和 SSO 重新導向的可靠性。

某些應用程式內瀏覽器會將 OAuth 身分提供者頁面於新 WebView 打開,導致導回時 sessionStorage 遺失。

此版本加設了 localStorage 後備方案:

  • 導向狀態依然存於 sessionStorage
  • 同時於 localStorage 中保存後備導向上下文。
  • 導回時若 sessionStorage 缺失,Logto 會從 localStorage 回復狀態。
  • 後備資料於讀取後會即時刪除,並於 10 分鐘候自動清理。
  • 如果兩者皆無內容,用戶會見到錯誤提示。

驗證碼連接器請求 IP

修正請求發出驗證碼時 IP 未傳遞至連接器的問題。

修正後連接器能獲取正確請求上下文以發送驗證碼。