README.md 2.9 KB

桌面分步登录 · 方案 1

用户选择 approved-design.png 的极简向导:每次只显示当前一步,远程流程为「选择方式 → 连接服务器 → 登录账号」。返回保留选择、服务器地址和用户名;修改服务器地址会清除凭据,并要求重新检测。

启动与授权

  • 勾选「记住本次选择」后,启动时只显示中性加载状态。记住的是本机/远程方式和服务器地址,有效授权会直接进入工作区。
  • 远程桌面登录授权独立加密保存在本机,使用现有 macOS Keychain / Windows DPAPI 凭据设施;不保存账号密码。服务端为桌面会话保存可撤销授权,不按普通网页的 30 天期限失效。
  • Chromium Cookie 保留 400 天,并可从本机加密授权恢复。服务端仍检查账号有效性和密码版本;退出、改密、账号禁用或权限撤销都会使旧授权失效。
  • 主动退出会清除本机加密授权和 Cookie。即使服务器离线,也不会在下次启动恢复该授权。保存/恢复/清除操作按顺序执行,避免恢复请求覆盖退出结果。
  • 修改密码后,远程桌面回到该服务器的登录页,不重新选择运行方式。其他桌面通过请求鉴权或最多约 10 秒的在线检查发现撤销;断网不会自行删除授权,恢复连接后再检查。
  • 新客户端连接旧服务端时仍可登录,旧服务端会话沿用旧有效期。完整的持久授权需要同步更新服务端。

本机管理员

本机流程为「选择本机 → 准备服务 → 工作区」,无需填写账号、密码或创建管理员。已有安装复用原管理员身份;新安装创建随机不可猜测密码的管理员,不提供公共默认密码。

免登录入口只允许桌面主进程使用本地私有服务凭据访问:校验真实回环连接、私有令牌及无 Origin 的原生请求。普通浏览器和局域网请求仍需登录。设置页允许本机管理员直接设置供其他设备登录的账号和密码,修改后本机继续使用管理员身份。

预览与验证

运行 node scripts/preview-desktop-onboarding.mjs 后打开 http://127.0.0.1:4388。预览使用正式 HTML/CSS/JS 和流程控制器,但服务、登录和注册为模拟行为;不会连接输入的服务器。密码填 error 可查看错误状态。

  • choice-compact.png、connect-compact.png、login-compact.png:615 × 605,按设计画板的单页尺寸核对。
  • choice.png、connect.png、login.png:960 × 940,常规桌面窗口。
  • narrow-dark.png、local-complete.png:390 × 844,深色及本机无需登录的补充状态。
  • 设计验收见仓库根目录 design-qa.md。本次完成浏览器交互验证、相关单元测试、类型检查和 Web/服务端构建;未运行原生 Electron 完整集成测试、制作安装包或替换已安装 App。

旧单页方案资料保留于 ../desktop-onboarding/,当前行为以本文为准。