- 变更规模:新增 514 / 修改 62 / 重命名 155 / 删除 4(归档重组与文档轮次) - .gitignore 修:`归档/**/db-cwd归一-备份-*/` —— 原规则写绝对层级(归档/db-cwd归一-…), 目录搬进 归档/配置与备份/ 后**静默失效**,43 MB 的 DB 备份又变成未跟踪 - .gitignore 补:嵌套 git 内部数据(归档/内嵌git-20261008/、归档/skills-git-旧线-20261007/dotgit-原样移出/) - .gitignore 补:运行态与部署副本(.workbuddy/collab/、.workbuddy/tools/、.workbuddy/.load-pending、.workbuddy/tmp-*) - .gitignore 补:备份件(*.bak-*) - 未跟踪文件从 2190 降到 890(其余为 归档/ 归档件与 .workbuddy/memory/ 知识文件,按口径入库)
4.3 KiB
4.3 KiB
接续入口 — 官方账号登录(手机连桌面端)· 2026-09-27
一句话(当前实况,2026-09-27 第 112 轮)
代码层已全部完成并验证;只剩两步需要人在机器前做:① 重启桌面客户端(新面板入口与 /oauth/* 生效)② 在官方页面点批准。在那之前,"官方账号"这条链不算端到端通。
已完成(含证据,⛔ 别重做)
- 死结已定:官方 OAuth 只接受回环回调(
http://127.0.0.1:PORT/…、http://localhost:PORT/…通过;公网域名与官方自身 origin 均被code:50005 PAYLOAD_SCHEMA_MISMATCH拒)⇒ 服务器与手机浏览器都当不了官方客户端,只能由桌面端做。详见 官方账号登录_死结与结论_20260927.md。 - 平台侧三跳已上生产(
D:\github\dsh_shenxian,线上 md5f0490dc44ec8f9ba3d5c9d0605bf886f与本地一致):POST /api/dsh-oauth/begin(收{redirectUri,state[,pairCode]}⇒ 回{authorizeUrl};只放行回环;PKCE verifier 留服务端)POST /api/dsh-oauth/complete(校state单次有效 ⇒ 用服务端 verifier 调官方auth_exchange⇒ 官方身份转平台账号:identityKeyOf→platformUsernameOf→查或建role='pending'⇒ 带pairCode时内部调既有/api/overlay/pair/approve完成绑定)- 夹具
test/dsh-oauth.test.mjs(8/8 绿:公网拒/缺参拒/回环起授权且不回显 PKCE 私料/陌生 state 拒/换码拿身份且不许重放/官方biz_code≠0不回原文/带码绑定成功pairBound/带码绑定失败 409 不夹带凭据);与test/dsh-account-login.test.mjs(10 例)均已挂进npm test。
- 桌面端已落地并接入(
E:\github\dsh-client\packages\device-shim):lib/oauth-dsh.js:GET /oauth/dsh/start(请平台起授权并 302)+GET /oauth/callback(校state、收码、把{code,state,redirectUri[,pairCode]}交平台);接入点lib/index.js:52/297。lib/pair-page.js:面板新增「用 DSH 官方账号绑定」入口,出码后自动带上本次pairCode。src/index.ts:设计说明已同步(本仓 lib/src 手工同步约定)。
- 可复跑的验证脚本(全部 rc=0):
- 桌面端两路由冒烟
E:\ProgramDSH\.dsh\temp\joint\oauth-dsh-smoke.mjs⇒ 9/9 - 真网络打生产
…\oauth-dsh-realchain.mjs⇒ 302 到官方授权页并回真authorize_id - 面板渲染
…\pair-panel-render-check.mjs⇒ 7/7(含新入口、原型令牌在、无自造色板) - 平台侧
npm run build && node --test test/dsh-oauth.test.mjs test/dsh-account-login.test.mjs⇒ 16/16 - 共存门禁(
…\.workbuddy\_devkit):登记控制台 30/0、设备通道 15/0
- 桌面端两路由冒烟
- 回滚点:平台
/opt/dsh/backups/dsh-oauth-bind-1606/(上一版可执行回退:原样拷回 + 重启dshs);插件侧未 commit ⇒ git 工作区回退。
只剩这两步(需要人操作)
- 重启桌面客户端(或在「设置 → 插件」把 device-shim 关掉再开)⇒ 面板入口与
/oauth/*两条路由生效。 - 设置里打开「扫码配对」→ 出码 → 点「用 DSH 官方账号绑定」→ 在官方页面点批准 ⇒ 面板应显示「已绑定」。
随后复核两条验收:凭据四件与登记控制台产物同形 + 中继里该 uid 设备
online=true且端口含 20090。
当前可用状态(不受上面阻塞)
门户账号那条路全通:面板出码 → 平台 pending_scan → 手机登录门户确认 → 桌面落凭据 → 中继在线。想先用它把手机连上,随时可以。
⛔ 不要重做 / 不要再走
① 别再把官方登录入口挂到门户登录页(浏览器里必然失败,已因此回退)② 别再验"公网回调能否通过"(已证被 code:50005 拒)③ 别改官方主程序 E:\github\dsh-desktop-0.1.7rc2 ④ 别重写平台侧 dsh-account.ts 与已完成的 dsh-oauth.ts ⑤ 别按 email 认领既有平台账号(dsh-account.ts:38-47 已判死)⑥ 别动后台作业 pwsh-470(测试身份设备守护)⑦ ⛔ 本阶段线已收口,不需要再改插件侧。