DeepSeek Harness (DSH) 的设计理念是“一切皆插件”。在 Web 环境下,开发者常需要将桌面端的认证会话同步到移动设备。传统的做法往往涉及重新登录或复杂的 Token 传递机制。dsh-qr-share 作为一个 DSH Web 插件,直接在侧边栏底部提供了二维码生成入口,旨在复用桌面端已完成的认证交换流程。
插件定位¶
该插件由用户 xiaoguomeiyitian 维护,开源协议为 MIT。它是一个 DSH Web 插件,核心作用是提供侧边栏底部的二维码按钮,支持手机扫描并复用桌面已完成的 ?token=… 交换,实现同会话登录。
功能说明¶
- 侧边栏入口:登录后,在侧边栏底部(设置按钮旁)会出现二维码图标。
- 交互流程:点击图标弹出对话框,显示二维码和纯文本 URL(扫码失败时的备用)。
- 自动适配:自动适配
window.location.origin,无需额外环境变量配置即可指向正确的 Host。 - 路由保护:路由
/_qr/share受connection.requestRejection保护,确保安全性。
安装与启用¶
推荐使用 DSH 插件 CLI 进行安装:
dsh plugin --profile <name> add dsh-qr-share@latest
配置¶
安装后,需要在 patch overlay 中添加配置。默认 enabled 为 true,设置为 false 可将路由短路至 404。
- insert:
- id: qr-share
name: 'dsh-qr-share'
config:
enabled: true
使用示例¶
- 在桌面端登录并完成认证。
- 点击侧边栏底部的二维码图标。
- 使用手机扫描二维码或文本 URL。
- 服务器通过
BrowserAuth将 Token 交换为 Cookie,重定向至/,手机端完成同会话登录。
技术细节¶
- Token 生命周期:Token 仅在单次
dsh web激活中有效,首次交换后即失效。 - Cookie 安全策略:Cookie 绑定到特定 Authority,并设为 HttpOnly + SameSite=Strict。
- 跨站防护:SameSite=Strict + 同源 fetch 确保路由无法从跨站框架访问。
- 依赖要求:Node >= 20, DSH >= 0.1.0-rc.8, React ^18 || ^19。
适用场景与注意¶
该插件适合需要在桌面端开发并希望快速将认证状态同步到移动端的场景。插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
结语¶
dsh-qr-share 通过复用 Token 交换机制,简化了桌面到移动端的会话同步流程。更多细节可在社区目录或GitHub 仓库查阅。