Skip to content

v0.2.0

Choose a tag to compare

@xbzbing xbzbing released this 17 Aug 08:21
· 17 commits to main since this release
fc2a466

里程碑发布:项目更名为 dsh-auth-gateway,并落地认证流程升级、安全评审修复与两处重构。

包含 @adra2n 更新的 OTP 功能。

改名(全量)

  • 包 / 插件注册名 / bundle id / cordis.patch.ymldsh-auth-gateway
  • bin 命令:dsh-auth-gateway-reset / dsh-auth-gateway-uninstall
  • GitHub 仓库同步改名:xbzbing/dsh-auth-gateway(旧 URL 自动重定向)

认证流程(替代旧 setup 页面,/login/setup 已彻底移除)

  • 首次部署自动生成初始密码(控制台打印、一次性)→ 强制引导设置个人密码 → 重新登录
  • 未完成引导的会话:页面 302 /onboarding、API 401 onboarding-required、WebSocket 拒绝

安全修复(评审六项 Required 全部落实)

  • WebSocket 升级补上 onboarding 门禁(原可绕过读取事件流)
  • 丢失认证器可用备份代码登录(登录页切换按钮 + /login/auth 服务端支持;单次使用、共享限流与锁定)
  • otpVerifyPage${digits} 字面量插值修复;客户端禁用 OTP 位数动态化
  • 失败计数 / OTP 窗口 Map 过期清理(#pruneRateState
  • otp.json 损坏 fail-loud(不再静默降级 2FA)
  • /login/change 错误旧密码计入共享锁定

重构

  • lib/gateway-otp.js:OTP 路由 handler 自 lib/gateway.js 拆分(1124 → 828 行)
  • lib/page-shell.js:login / onboarding / otp 三页面的 CSS、HTML 骨架、脚本头去重(渲染结构逐字节等价)

文档与测试

  • README 默认中文 + README.en.md 英文版;SECURITY / DEPLOYMENT / TESTING / DEVELOPMENT 重写;docs/PROPOSAL.md 移除;截图 6 张重新生成
  • 测试 93/93(新增 onboarding 门禁、备份码登录、fail-loud、Map 清理、改密锁定回归)
  • 实机验证:verify.sh 17/17、e2e 14/14、备份码登录链路(登录 200 → 重放 401)