GDWhisper/dsh-web-startup-auth ↗★ 47

dsh-web-startup-auth

DSH remote-aware web-startup replacement + username/password auth plugin: allows --host 0.0.0.0 when paired with the auth plugin 适合将服务部署在公网或局域网服务器,需要安全登录防护的远程用户。

패키지
dsh-web-startup-auth
호환성
미검증
Cordis peer 범위
^4.0.1
버전
0.1.10
라이선스
MIT
최근 업데이트
2026. 9. 22.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:GDWhisper/dsh-web-startup-auth

使用

  1. 浏览器访问 http://:/(在本机则用 http://127.0.0.1:/,无需登录)。
  2. 远程访问首次会跳转到 /login,显示"设置管理员账号密码"注册表单。
  3. 注册成功后自动登录并进入主界面;之后访问需登录。
  4. 退出登录 / 修改用户名 / 修改密码 / 调整会话有效期:打开主界面设置面板 → 认证标签页(同时也是一个独立入口,/api/auth/logout 清除会话 cookie)。

如果需要在本地设置账号密码(本机默认免登录,界面不会自动跳登录页):

  1. 浏览器打开 http://127.0.0.1:/login —— 未注册时该页直接显示注册表单。
  2. 或进设置面板 → 认证,页顶「尚未设置管理员账号」处点「前往设置管理员账号」。

注册后本机仍免登录;想让本机也要登录,到认证 → 登录要求打开「本机登录校验」(需先有账号)。开关打开后本机也要走 /login(页面会立即跳过去),登录后认证页才会显示「当前登录」和退出登录入口。

凭据与会话密钥保存在 ~/.dsh/web-auth.json:

  • 密码使用 scrypt(随机盐,64 字节)散列存储,不保存明文。
  • 会话 cookie 用随机生成的密钥做 HMAC-SHA256 签名,防伪造。有效期档位(sessionMaxAgeDays,默认 14)也存在这个文件里,可在设置面板调节;调整只对新签发的会话生效。
  • 忘记密码:在服务器本机执行 dsh --profile web auth-reset,交互式设置新密码(或 dsh --profile web auth-reset --password 非交互)。重置会轮换会话密钥,所有已登录的浏览器都需要重新登录一次。
  • 修改用户名 / 修复含控制字符的用户名:dsh --profile web auth-reset --username (可与 --password 同用)。同样轮换会话密钥。用户名在注册/登录/修改时统一剥除 C0 控制字符(0x00–0x1F)与 DEL(0x7F)——旧版本若已把含 DEL 的用户名原样存盘,用它即可修复。
  • 兜底方案:删除 ~/.dsh/web-auth.json 并重启,即可重新注册。这只影响登录状态——已登录的浏览器需要再登录一次,不会删除任何会话记录或历史数据(它们存在 ~/.dsh/sessions/ 等位置,与本文件无关)。
  • auth-reset 不能用来首次创建账号:它要求已有凭据,否则报「尚未注册管理员账号,无需重置」。首次只能用上面的注册页。