Guanghu Domestic Migration a27e87cb99 chore: import sanitized domestic snapshot for REPO-007
Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc

[SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
2026-07-17 15:59:55 +08:00

63 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 执行记录 · 2026-06-11 · GHCS v0.2 登录入口闭环验收(本地)
```jsx
HLDP://ghcs/v0.2/exec-log/2026-06-11 · 2026-06-11T00:48+08:00
├── scope: GHCS v0.2 · API Keys 登录入口产品化 + 本地验收闭环不部署服务器
├── env: Mac 本地开发frontend:3000 + backend:5002
├── policy: 未完全开发完不部署服务器本次严格遵守
└── result: 本地闭环通过
```
---
## ✅ 本次完成清单(按验收口径)
### 1) 登录入口(可点可用)
- 页面:`/console/keys` 顶部登录条显示
- 登录接口:`POST /api/login` → 返回 `access_token`bearer
- 本地持久化:`localStorage.ghcs_access_token` 有值(刷新不丢)
### 2) 写操作鉴权闭环(不再 401
- 启停开关:触发 `PUT /api/keys/{id}` → 200
- Network 验收:请求头包含 `Authorization: Bearer <token>`
- 实际效果key 的启用/停用状态可切换并生效
---
## 🧱 本次遇到的问题(根因)
1) **前端编译错误TSX 的 style 写法错**
- 典型错误:`style= color: ...` / `style= backgroundColor: ...`
- 结果Next 直接 build errorExpected '</', got 'ident'
2) **富文本/渲染吞双花括号**
- 在聊天/Notion 中书写 `style= ...` 容易被吞成“少一层花括号”,导致反复改错
- 结论:对话与文档中统一使用 `style={ { ... } }` 展示代码(永不丢花括号)
3) **token 失效导致 401令牌过期或无效**
- 现象localStorage 有 token但写请求 401
- 处理:清空旧 token → 重新登录签发 → 再验收 PUT 200
---
## 🧠 认知沉淀(以后怎么避免绕圈)
- **硬规则 1TSX 里看到 `style=` 就立即检查是否是对象形式**
- 禁用:`style= color:` / `style= backgroundColor:`
- 允许:`style= ...``style={ { ... } }`
- **硬规则 2代码只在 VS Code 改;对话只传证据链**
- 证据链最小集localStorage token 有值 + Network PUT 200 + Bearer header 存在
- **硬规则 3401 先走 SOP不猜**
- token 是否存在 → header 是否带 Bearer → response detail → 再决定清 token 还是修代码
---
## 📌 当前状态
- GHCS v0.2 · API Keys 登录入口 + 写操作鉴权:**本地验收✅**
- 下一步(仍保持本地优先):全局 fetch 封装(自动带 Bearer + 统一 401 提示)