dsh-fixed-launch-token:把 DSH Web 啓動 token 固定爲配置值

前言

用 dsh web 暴露 Connection 服務時,啓動日誌裏會打印帶 ?token=... 的配對鏈接。官方 @deepseek-ai/dsh-client-connection 每次進程啓動都會用 randomBytes(32) 生成新的 launch token,該值同時校驗 /connect 與 GET /?token=。要把鏈接寫進書籤、腳本或內部文檔,就得每次重啓後去日誌裏抄新 token。下面介紹社區插件 dsh-fixed-launch-token(維護者 starskyzheng,分類 admin-security):在顯式配置的前提下,把運行中的 browserAuth.launchToken 改爲你指定的固定值,啓動橫幅與訪問路徑統一使用該 token;默認不配置則不改動官方隨機行爲。

這是什麼

dsh-fixed-launch-token 是 DeepSeek Harness(DSH)生態下的 Cordis 插件,通過 cordis.patch.yml 注入 connection 服務,在隨機 token 生成之後把 service.browserAuth.launchToken 覆蓋爲配置項 fixedLaunchToken。它不替換官方 Connection 提供方,也不跳過 BrowserAuth;與 @iasiv5/dsh-skip-browser-auth 不同,校驗邏輯與 Host/Origin 信任柵欄保持不變,錯誤 token 仍返回 401,僞造 Host 仍 403。

核心功能

  1. 固定啓動與訪問 token:配置生效後,dsh web 橫幅、/connect?token=...、/?token=... 均使用同一固定值。
  2. 默認惰性:未設置 fixedLaunchToken 時插件不修改行爲,官方每進程隨機 token 照舊;日誌會說明插件已加載但未啓用。
  3. 配置校驗:token 長度 16–256,禁止空白字符及 ?、#;過短或非法值會拋錯,避免誤以爲已固定實則仍隨機。
  4. 兼容性門禁:package.json 頂層 engines.dsh 聲明爲 0.2.1-rc.2 || 0.2.2-rc.1,未驗證的 DSH 版本會跳過該 bundle 並給出明確原因。

安裝

本地目錄安裝(README 原文命令):

dsh plugin --profile <你的 profile> add /path/to/dsh-fixed-launch-token

也可在 GUI 插件管理中安裝該目錄。安裝後若不寫配置,行爲與未裝插件時一致。

卸載:

dsh plugin --profile <你的 profile> remove dsh-fixed-launch-token

配置與啓用

在你自己的 profile 裏按插件 id 覆蓋 config(用戶 patch 優先級最高),路徑示例:

~/.dsh/profiles/<你的 profile>/cordis.patch.yml

- id: fixed-launch-token
  config:
    fixedLaunchToken: "在這裏填你的固定值"

可用下列命令生成約 43 字符的 base64url 強隨機值(32 字節熵):

head -c 32 /dev/urandom | base64 | tr '+/' '-_' | tr -d '=\n'

修改後重啓 dsh web 生效;該值在插件 apply 時讀取一次。空串、省略 config、純空白、null 或非字符串類型均視爲不啓用;僅非空且合法字符串纔會固定 token。

典型用法與場景

適用場景:GUI 配對鏈接需要長期不變——存書籤、嵌入自動化腳本、寫入團隊文檔,無需每次重啓翻日誌。

訪問方式仍爲官方語義,例如日誌中的:

dsh web: https://<public-url>/?token=<你的固定值>

注意:固定 token 成爲長期憑據,泄露後有效期直到你改配置;不像隨機 token 那樣隨重啓作廢。插件以當前 dsh 進程權限運行,安裝與啓用前應自行查看 GitHub 倉庫 源碼與 MIT 許可證。

工作原理(簡述)

官方 processLaunchToken 將 token 存在未導出的模塊私有結構中;本插件在 ctx.inject(['connection'], ...) 回調裏改寫 browserAuth.launchToken,使 authorizeConnect、authorizeIndex、authenticatedUrl 讀取同一字段。若官方將來改變該字段形狀,插件設計爲拋錯而非靜默回退。僅在存在 connection 服務的 dsh web 場景有意義;無 webServer 的 profile 中該行保持 dormant。

測試與版本

倉庫內測試:

node --test tests/plugin.test.mjs

請直接傳入測試文件;node --test tests/ 傳目錄可能因 MODULE_NOT_FOUND 失敗。

當前包版本 1.0.0,實測兼容 DSH 0.2.1-rc.2 與 0.2.2-rc.1;其他版本可能被兼容性門禁跳過,而非靜默降級。

結尾

dsh-fixed-launch-token 在保留官方 BrowserAuth 的前提下,把 launch token 從「每啓隨機」改爲「配置固定」,默認不配置則零影響。目錄與源碼:

DSH 社區插件目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;選用插件時請按自身安全要求評估固定憑據的風險。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜