dsh-authless:移除本地 DSH Web UI 的启动令牌检查

前言

本地使用 DSH(DeepSeek Harness)的 Web UI 时,每次启动都需要一个 launch-token,浏览器访问 http://127.0.0.1:3080/ 时需要携带该 token 才能通过授权检查,/api 请求也会因未携带 token 返回 401。这个 token 是当前进程与 harness API 之间唯一的检查机制。如果开发环境在同一台机器上,这个限制会带来额外开销。

下面介绍 dsh-authless 插件,它移除了这一检查,让本地 Web UI 和 API 调用不再需要 token。

这是什么

dsh-authless 是一个 DSH 插件,由维护者 zerodegress 发布。它通过修改连接服务的 browserAuth 字段,让所有授权检查都返回通过,从而跳过 launch-token 验证。页面无需 cookie 即可打开,/api 请求和 WebSocket 升级也不需要携带 token。

安装后,dsh --profile web 打印的 URL 不再附带 token 参数,打开页面即可访问。卸载时,插件的修改会被移除,恢复主机原有的授权逻辑。

核心功能

插件在连接服务的 browserAuth 字段中放入自己的 owner,并在每次授权检查时返回通过,让已经到达连接服务的请求被正常处理。它不改变主机自身的授权逻辑,只处理 token gate 部分。

插件会先检查请求来源是否属于允许的范围(loopback、监听器绑定的地址,或通过 --trusted-host 声明的地址)。对于来自其他来源的请求,它不干预,保持 403 响应。

安装与启用

插件已发布到 npm,包名为 dsh-authless。需要 dsh 版本 0.2.1-rc.2 或更新。

dsh plugin --profile web add dsh-authless
dsh --profile web

执行后,dsh 会打印一个 URL,直接在浏览器打开即可,无需携带 cookie 或 token。

卸载时:

dsh plugin --profile web remove dsh-authless

典型用法

在本地开发环境中,如果只运行一个 dsh 进程且不希望每次访问 Web UI 都要复制粘贴 token,可以安装此插件。

启动命令保持不变:

dsh --profile web

浏览器访问打印的 URL,页面和 API 调用均无需额外认证。插件会添加一行 id: authless,不影响主机自身的其他配置覆盖。

适用场景与注意

该插件以当前 dsh 进程的权限运行。任何能访问该端口的本地进程都可以使用 harness API,包括其他本地用户。建议只在单用户机器上使用。

反向代理或局域网客户端需要通过 --trusted-host 声明授权,否则响应保持 403。插件不会修改 --host 0.0.0.0 的限制。

插件依赖 @deepseek-ai/dsh-client-connection 0.2.1-rc.2。如果连接服务没有 browserAuth 字段,插件会记录一条警告并保留 token gate。在安装前,建议查看源码与许可证(MIT)。

短结尾

dsh-authless 通过移除 launch-token 检查简化了本地 DSH Web UI 的使用流程。适合在单用户开发环境中快速启用,但需注意权限和适用限制。

  • 目录页:https://www.skillhub.cn/plugins/zerodegress/dsh-authless
  • GitHub:https://github.com/zerodegress/dsh-authless
羽毛球分组比赛记分
小程序二维码

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

小夜