为 Web 界面添加浏览器密码登录,免去在网址中携带令牌
29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add todashuta/dsh-basic-auth该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读取剪贴板或密钥环境变量
查看扫描证据(共 1 处,展示前 1 条)
- 读取密钥环境变量src/index.mjs:68
const password = config.password ?? process.env.DSH_WEB_PASSWORD ?? ''
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-basic-auth
这是一个 DSH(DeepSeek Harness)bundle,为 DSH 的 Web GUI 加上 HTTP Basic 认证。
启动时会显示带 ?token=... 的 URL,现在你可以改用浏览器自带的密码对话框登录。认证成功后,DSH 会签发原本的签名 Cookie,因此 /api 和 WebSocket 仍然沿用现有的 Cookie 认证。
工作原理
DSH 每次启动都会在 URL 里带一个随机 token,再把它换成签名 Cookie,以此认证浏览器。这个 bundle 会拦截 / 路由,在没有 Cookie 时要求 Basic 认证。
ブラウザ │ GET / ▼ dsh-basic-auth(exact route "/") │ ├─ 署名 Cookie あり ─────────────► index を返す │ ├─ Authorization: Basic ────────► 資格情報を検証 │ │ │ ├─ OK ──► authorizeIndex() を合成リクエストで呼ぶ │ │ └─ 200 + Set-Cookie(index をそのまま返す) │ │ │ └─ NG ──► 401 + WWW-Authenticate │ └─ ?
展开完整文档(README 剩余 1 节)
dsh-basic-auth 这是一个 DSH(DeepSeek Harness)bundle,为 DSH 的 Web GUI 加上 HTTP Basic 认证。 启动时会显示带 ?token=... 的 URL,现在你可以改用浏览器自带的密码对话框登录。认证成功后,DSH 会签发原本的签名 Cookie,因此 /api 和 WebSocket 仍然沿用现有的 Cookie 认证。 工作原理 DSH 每次启动都会在 URL 里带一个随机 token,再把它换成签名 Cookie,以此认证浏览器。这个 bundle 会拦截 / 路由,在没有 Cookie 时要求 Basic 认证。 ブラウザ │ GET / ▼ dsh-basic-auth(exact route "/") │ ├─ 署名 Cookie あり ─────────────► index を返す │ ├─ Authorization: Basic ────────► 資格情報を検証 │ │ │ ├─ OK ──► authorizeIndex() を合成リクエストで呼ぶ │ │ └─ 200 + Set-Cookie(index をそのまま返す) │ │ │ └─ NG ──► 401 + WWW-Authenticate │ └─ ?token=... ──────────────────► 既存のトークン交換(303 + Set-Cookie) - 没有 Cookie 时,Basic 认证一旦成功,就会签发 DSH 的签名 Cookie,并在同一个响应里返回 index。中间不走 303 重定向,所以即使环境保存 Cookie 较慢,也不会陷入重定向循环。 - 之后的 /api 和 WebSocket 仍由 Connection 的 Cookie 认证保护,和以前一样。 - 原有的 ?token=... URL 依然可用(为了兼容书签和启动脚本)。 - 密码未设置或为空时,不启用 Basic 认证,仍走 DSH 原本的 token 方式。 安装 把 bundle 加到 DSH 的配置档里。 npm から(公開後) dsh plugin --profile web add dsh-basic-auth GitHub から dsh plugin --profile web add github:todashuta/dsh-basic-auth ローカルのチェックアウトから dsh plugin --profile web add link:/path/to/dsh-basic-auth 安装后会加到 dsh.profile.bundles,bundle 随之生效。配置档开了 HMR 就当场生效,否则下次启动时生效。 dsh plugin add 会把包放进配置档的 node_modules,并读取 bundle 的 dsh.bundle.patch。cordis.patch.yml 里关掉了 web-runtime 的显示设置,所以 URL 的显示交给这个插件负责。 启动 DSH_WEB_PASSWORD='change-me' dsh --profile web 启动后会显示不带 token 的 URL 和 Basic 认证的用户名。 dsh web: http://127.0.0.1:3080 dsh web: HTTP Basic authentication is enabled for user "dsh" 在浏览器里打开 URL,会弹出 Basic 认证对话框,输入用户名 dsh、密码 change-me。 修改密码 改掉 DSH_WEB_PASSWORD 再重启。如果浏览器缓存了旧密码,会先返回一次 401,然后弹出重新输入对话框。 修改用户名或 realm bundle 的 patch 在包内,用配置档侧的 cordis.patch.yml 覆盖。 ~/.dsh/profiles/web/cordis.patch.yml - id: dsh-basic-auth config: username: alice password: !!js process.env.DSH_WEB_PASSWORD realm: DeepSeek Harness 配置档的 patch 在 bundle 的 patch 之后应用,所以这里指定的值优先。用户名里不能有 :。 配置 | 键 | 默认值 | 说明 | | username | dsh | Basic 认证的用户名。不能为空字符串,也不能含 : | | password | DSH_WEB_PASSWORD | 密码。未设置或为空则禁用 Basic 认证 | | realm | DeepSeek Harness | WWW-Authenticate 的 realm。不能含 "、\ 和控制字符 | 安全 - 前提是通信链路受保护。请在 VPN、Tailscale、TLS 终止的反向代理等加密环境中使用。Basic 认证只是把密码用 Base64 发出去,如果暴露在未加密的 HTTP 上,密码会被读走。 - 没有防暴力破解、登出、改密码 UI。设计上就是固定使用单个用户的凭据。 - 静态资源(/assets/... 等)保持公开。数据和 /api 由 Cookie 保护。 - 带 ?token=... 的 URL 仍然有效。知道 token 的人可以绕过 Basic 认证(DSH 的既有行为)。请不要分享带 token 的 URL,也不要把它输出到日志。 - 浏览器会缓存 Basic 认证的凭据。在共用设备上请多加注意。 已知限制 - 签发签名 Cookie 时,用合成请求调用了 ctx.connection.authorizeIndex()。这是 DSH 为 index 公开的 API,不是官方认证扩展点。DSH 更新后可能失效。 - 在 Cookie 无法保存的环境里,index 能显示,但 /api 会返回 401。如果 DSH 跑在 TLS 上、你却用 HTTP 访问,Secure Cookie 存不下来,请改用 HTTPS 访问。在反向代理下 Host 被改写的环境里,Cookie 的 audience 对不上,可能需要重新登录。 - 直接打开 /index.html 时不会弹出 Basic 认证挑战(有 Cookie 就能通过)。通常都从 / 进入,实际使用没问题。 - bundle 的 patch 里设了 openBrowser: false,所以启动时不会自动打开浏览器。请手动打开显示的 URL。 - 不支持多用户。 - 这不是把 Basic 认证嵌进 DSH 本体(packages/client/connection)的做法。它不改本体,只在 bundle 范围内运行。 开发 npm test または node --test test/ 测试只靠 node:test 就能跑,不需要 DSH 的 checkout。 想在 DSH 里试本地改动,用 link: 安装。 dsh plugin --profile web add link:$PWD bundle 的构成 - package.json 的 dsh.bundle.patch 指向 ./cordis.patch.yml。 - cordis.patch.yml 停掉 web-runtime 的显示,并 insert dsh-basic-auth。 - locale/en.json 和 locale/ja.json 提供 Plugins 页面的显示名和说明。 - 插件本体在 src/index.mjs,运行时依赖只有 node:crypto。 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
todashuta/dsh-basic-auth
为 Web 界面添加浏览器密码登录,免去在网址中携带令牌
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,826已汉化DSH
72.2
花束设计alchaincyf/huashu-design
一句话生成网页、原型、PPT 与信息图等可交付设计
★ 28,638已汉化DSH
71.7
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。