前言¶
在 DeepSeek Harness 的插件生態中,訂閱登錄通常由多個插件分別實現,每個插件都硬編碼了支持的提供商列表。這種方式維護成本高,且難以適配新增的提供商。
dsh-subscription-login 解決了這一問題。它通過讀取 Harness 的 ctx.authorization 接縫,動態獲取當前註冊的 OAuth 登錄流程。這允許它提供一個統一的控制台,展示所有可用的登錄流程,而無需修改代碼。
插件簡介¶
- 名稱:
dsh-subscription-login - 所有者:woodfood111
- 許可:MIT
- 類別:客戶端
核心功能¶
- 動態流程列表:不從代碼中硬編碼提供者,而是從
ctx.authorization讀取 OAuth 流程列表。當dsh-llm-pi-ai註冊新的登錄流程時,插件無需修改即可顯示。 - 安全防護:所有請求均通過
ctx.connection.requestRejection()檢查。這包括 Host/Origin 防護(防止 DNS 重綁定)和瀏覽器認證。裸請求會返回 401,而不是 200。 - 密鑰管理:插件不處理密鑰,僅調用
describeRecord()。所有流程在dsh-llm-pi-ai內部運行並寫入 Harness 憑證存儲。 - 未認領記錄清理:提供未認領記錄的清理功能,用於處理那些不再被任何流程認領的
llm-pi-ai作用域記錄。 - 統一管理界面:在
Settings → Plugins → Subscriptions提供統一的登錄管理入口。
安裝與啓用¶
安裝命令如下:
dsh plugin --profile web add dsh-subscription-login
安裝後必須重啓 dsh web 才能生效。這是因爲在 Bundle Patch 中插入了授權接縫(authorization seam)和此插件本身,熱重載無法可靠加載這種文件寫入的變更。
重啓後,訪問 Settings → Plugins → Subscriptions 即可進入管理界面。
使用說明¶
在插件界面中,每一行代表一個可登錄的賬號:
- 登錄:點擊登錄後,流程會引導用戶打開指定頁面並輸入驗證碼。插件支持隨時取消登錄嘗試。
- 登出:點擊登出會刪除本地記錄。此操作需要二次確認。
- 刪除未認領記錄:針對不再被任何流程認領的過期記錄,可以直接點擊刪除。
登錄成功後,Settings → Models 頁面會顯示對應的提供商行及其憑證狀態。
注意事項¶
- 請求體限制:請求體大小限制爲 64 KiB。非 JSON 請求體會返回 400 錯誤。
- 功能範圍:不支持服務器端撤銷(僅刪除本地記錄)。不支持可恢復的登錄嘗試(刷新頁面需重新開始)。不包含推薦、配額跟蹤或健康檢查。
- 作用域限制:僅處理和刪除
llm-pi-ai/<provider>作用域的記錄。
技術細節¶
- 無構建步驟:
lib/client.js是直接運行的客戶端模塊格式(window.__ModuleLoader__.load工廠模式),無需編譯。 - 測試覆蓋:包含 52 個離線測試,涵蓋註冊、路由、信任圍欄和客戶端交互。
參考資源¶
- GitHub:https://github.com/woodfood111/dsh-subscription-login
- 插件目錄:https://www.skillhub.cn/plugins/woodfood111/dsh-subscription-login