# 迁移包 · GHCS v0.2 · SSH终端 & API Keys(本地验收+鉴权修复+登录入口) ```jsx HLDP://migration-pack/ghcs/v0.2 · generated_at: 2026-06-10T18:06+08:00 ├── scope: GHCS v0.2 本地开发与验收(SSH Web Terminal + API Keys) ├── goal: 换对话/换人/换设备后,可快速恢复上下文与继续推进 └── status: 本地验收✅ · 上线到服务器⬜(刻意暂缓) ``` --- ## 1) 本次任务交付物(你可以直接打开复用) - 任务状态唯一真相源(已更新里程碑):[任务进展 · Awen系统 · 唯一任务状态源](%E4%BB%BB%E5%8A%A1%E8%BF%9B%E5%B1%95%20%C2%B7%20Awen%E7%B3%BB%E7%BB%9F%20%C2%B7%20%E5%94%AF%E4%B8%80%E4%BB%BB%E5%8A%A1%E7%8A%B6%E6%80%81%E6%BA%90%208d159e32b7bb4d468989084514957bcb.md) - 执行记录(今天的“发生过什么”):[执行记录 · 2026-06-09 · GHCS v0.2 API Keys 鉴权修复与本地验收](%E6%89%A7%E8%A1%8C%E8%AE%B0%E5%BD%95%20%C2%B7%202026-06-09%20%C2%B7%20GHCS%20v0%202%20API%20Keys%20%E9%89%B4%E6%9D%83%E4%BF%AE%E5%A4%8D%E4%B8%8E%E6%9C%AC%E5%9C%B0%E9%AA%8C%E6%94%B6%20aa2d746627374785af4ebbda76344745.md) - 终端排障 SOP(含关键数据备忘):[GHCS v0.2 终端排障 SOP(SSH Web Terminal Debug SOP)](GHCS%20v0%202%20%E7%BB%88%E7%AB%AF%E6%8E%92%E9%9A%9C%20SOP%EF%BC%88SSH%20Web%20Terminal%20Debug%20SOP%EF%BC%89%205f99f07a456c4ab9a8732f2e2e643ad1.md) - keys/page.tsx 完整可替换版(含登录入口+鉴权):[GHCS v0.2 · keys/page.tsx 完整可替换版(含登录入口+鉴权)](GHCS%20v0%202%20%C2%B7%20keys%20page%20tsx%20%E5%AE%8C%E6%95%B4%E5%8F%AF%E6%9B%BF%E6%8D%A2%E7%89%88%EF%BC%88%E5%90%AB%E7%99%BB%E5%BD%95%E5%85%A5%E5%8F%A3+%E9%89%B4%E6%9D%83%EF%BC%89%20218db04ed1244016b1419b1813c7c3f8.md) - 知秋记忆容器年轮(已写入两条里程碑):[知秋记忆容器 · Memory Vessel · v0.1 · 三层记忆架构 · Awen×知秋共同设计](%E7%9F%A5%E7%A7%8B%E8%AE%B0%E5%BF%86%E5%AE%B9%E5%99%A8%20%C2%B7%20Memory%20Vessel%20%C2%B7%20v0%201%20%C2%B7%20%E4%B8%89%E5%B1%82%E8%AE%B0%E5%BF%86%E6%9E%B6%E6%9E%84%20%C2%B7%20Awen%C3%97%E7%9F%A5%E7%A7%8B%E5%85%B1%E5%90%8C%20dac1430ae5ba454f97d45ca1193b15b0.md) --- ## 2) 当前已验收通过的结论(可直接当“完成口径”) ### 2.1 SSH Web Terminal(本地) - 后端:`GET /ws/terminal/servers` → 200 - 前端:`/console/terminal` 可连接并交互 - 交互验收命令:`whoami / pwd / echo FOCUS_OK / echo CLICK_FOCUS_OK / echo SHOULD_APPEAR` ### 2.2 API Keys(本地) - 登录:`POST /api/login` → 返回 `access_token`(bearer) - 后端写入:`POST /api/keys/add` → ok + mask 正常 - 后端读回:`GET /api/keys/list` → 可读回刚写入的 key - 前端页面:`/console/keys` 读取 suppliers/list/usage/health-check 正常 - 前端写操作:启停/新增/删除不再 401(写请求带 Bearer 后 200) --- ## 3) 关键数据(防遗忘,最常用) ### 3.1 本地端口/环境变量 - backend:`http://127.0.0.1:5002` - frontend:`http://localhost:3000` - `frontend/.env.local`:`NEXT_PUBLIC_CONSOLE_API=http://127.0.0.1:5002` - ⊢ 改 env 后必须重启 `npm run dev` ### 3.2 Token 规则(写操作都靠它) - 登录返回字段:`access_token` - 前端存储:`localStorage.ghcs_access_token` - 写请求 header:`Authorization: Bearer ` ### 3.3 本地默认账号(开发硬编码,见 backend/[auth.py](http://auth.py)) - `awen / guanghu2026` --- ## 4) 代码迁移清单(给“复制替换/回滚”用) ### 4.1 前端 - 文件:`frontend/src/app/console/keys/page.tsx` - 目标:加入登录入口 + 统一 Bearer 鉴权(写操作) - ✅ 完整可替换版见:[GHCS v0.2 · keys/page.tsx 完整可替换版(含登录入口+鉴权)](GHCS%20v0%202%20%C2%B7%20keys%20page%20tsx%20%E5%AE%8C%E6%95%B4%E5%8F%AF%E6%9B%BF%E6%8D%A2%E7%89%88%EF%BC%88%E5%90%AB%E7%99%BB%E5%BD%95%E5%85%A5%E5%8F%A3+%E9%89%B4%E6%9D%83%EF%BC%89%20218db04ed1244016b1419b1813c7c3f8.md) ### 4.2 后端 - 文件:`backend/auth.py` - 管理员账号/密码哈希、JWT 生成与验证 - 文件:`backend/api_keys.py` - keys 路由(suppliers/list/add/update/delete/usage/health-check) - 文件:`backend/main.py` - include_router(确保 api_keys 与 terminal 路由挂载) --- ## 5) 下一步建议(保持“先本地完备后上线”策略) - ✅ 完成:keys 页登录入口(不再依赖手动塞 token) - ⬜ 待做:全局统一 fetch 封装(自动带 Bearer + 统一 401 提示) - ⬜ 待做:再考虑一键部署上线到 GHCS 服务器(43.139.207.172)