docs: 记录 8/29 同步 1062 修复与 8/31 auth-hub SSO 接入/清理部署;gitignore 排除独立项目 ai-gateway
This commit is contained in:
43
.workbuddy/memory/2026-08-31.md
Normal file
43
.workbuddy/memory/2026-08-31.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# 2026-08-31 工作日志
|
||||
|
||||
## fam-core 登录接入 auth-hub 统一登录(已部署 + 端到端验证)
|
||||
|
||||
### 目标(用户明确)
|
||||
`http://129.146.26.249:8000`(fam-core 公网入口,frp → NAS:8000)的登录改走 auth-hub
|
||||
统一登录,账号 `ericwyuan` / `iLoveJava5` 登录。
|
||||
|
||||
### 现状与动作
|
||||
- SSO 代码本地早已提交(`8120d2a feat(fam-core): 登录改接 auth-hub 统一登录`),NAS 未部署(旧密码登录版)。
|
||||
- **auth-hub 侧(甲骨文 /opt/auth-hub)**:
|
||||
- FAM-Core client `a2PJTZuKQYxt1oGh`(已存在)→ 轮换 secret 得明文
|
||||
`yZfJfD3xJmrCj9PQlbt7P8An9ebZ-nT2f3v4BTtOSu8`(旧密钥失效)
|
||||
- redirect_uris 增加 `http://129.146.26.249:8000/api/auth/callback`(原 :80 回调保留,
|
||||
auth-hub 精确匹配,用户入口是 :8000 所以回调也要 :8000 路径)
|
||||
- **NAS 侧(fam-core)**:
|
||||
- venv 补装 `PyJWT==2.13.0` + `cryptography==50.0.1`(RS256 验签必需)
|
||||
- 部署新 `auth.py`(cat 管道覆盖)
|
||||
- `.env` 追加 4 个变量:`AUTH_HUB_ISSUER=http://129.146.26.249:5300`、
|
||||
`AUTH_HUB_CLIENT_ID=a2PJTZuKQYxt1oGh`、`AUTH_HUB_CLIENT_SECRET=<上面>`、
|
||||
`AUTH_HUB_REDIRECT_URI=http://129.146.26.249:8000/api/auth/callback`
|
||||
- 清 __pycache__、杀双 gunicorn(今天 18:56 又一个旧进程 + 8/29 旧 master)、单实例重启
|
||||
|
||||
### 端到端验证(curl cookie jar 全链路)
|
||||
`/login` 302 → auth-hub `/authorize`(PKCE)→ hub 登录(ericwyuan/iLoveJava5 200)→
|
||||
`authorize` 302 回 `:8000/api/auth/callback?code&state` → fam-core 换 token+JWKS 验签 →
|
||||
种 fam_session → `/api/auth/check` = `{"authed":true}`,`/api/status` 200 ✓
|
||||
|
||||
### 注意
|
||||
- 本地 repo 3 个提交待 push(8120d2a SSO + 2 docs),等用户确认推送
|
||||
- NAS 仍跑旧版其余代码(webhook 移除等未部署,独立待办)
|
||||
- 密码登录 `/api/login` 已移除;fam-ui SPA 无登录逻辑,不受影响
|
||||
|
||||
## 补充:webhook/旧前端清理部署到 NAS(用户确认"清理")
|
||||
|
||||
- 全量比对 NAS vs repo:仅 `app.py`、`motion_bp.py`、`config.yaml` 三处是旧版(其余已同步)
|
||||
- 同步:3 个文件(app.py 移除 static_bp/refresh_camera_map 调用;motion_bp.py 移除 webhook 端点;
|
||||
config.yaml 移除 camera_name_to_id/enrich_window_sec)
|
||||
- 删除废弃:`static_app.py`、`fam-ui/` 目录、根 `start_ui.sh`、`scripts/start_ui.sh`
|
||||
- 清 pycache + 单实例重启
|
||||
- 验证:启动日志无 `refresh_camera_map` 告警;`/api/ss/webhook` → 401(已移除白名单与路由);
|
||||
SSO 登录 `/login` 302 → auth-hub 正常、`{"authed":true}`;`/api/ss/status` 200;Oracle 同步正常
|
||||
- 至此 NAS fam-core 代码与本地 repo 全量一致(除 .env/venv/logs)
|
||||
@@ -26,6 +26,11 @@
|
||||
手动 setsid 会端口冲突;venv `/opt/fam-edge/venv`;库 `/opt/fam-edge/data/oracle.db`;
|
||||
素材 `/opt/fam-edge/gdrive_videos`;logs 目录 ubuntu 可写。
|
||||
**前端亦托管于此机 Caddy :80**(fam-ui SPA + /api 反代回 NAS fam-core :8000 经 frp 隧道);旧机 129.146.203.203 已退役。
|
||||
- **登录(2026-08-31 起)**:fam-core 不再自己校验密码,登录全权走 auth-hub 统一登录
|
||||
(OAuth2 Auth Code + PKCE / OIDC,`http://129.146.26.249:5300`)。fam-core client
|
||||
`a2PJTZuKQYxt1oGh`,回调 `:8000/api/auth/callback`(auth-hub 侧注册了 :80 和 :8000 两个回调)。
|
||||
NAS `.env` 配 `AUTH_HUB_ISSUER/CLIENT_ID/CLIENT_SECRET/REDIRECT_URI`(缺任一 fail closed)。
|
||||
账号:`ericwyuan / iLoveJava5`(hub 端)。NAS venv 需 PyJWT + cryptography(RS256 验签)。
|
||||
- 部署:本地 git 提交 push Gitea → tar 管道(NAS 直接解包;Oracle `--strip-components=1` 到临时目录再 cp,避免动 data/venv)。
|
||||
- **NAS 部署坑(2026-08-29 踩过)**:拷贝 `.py` 会带旧 mtime,若 `.pyc` 比 `.py` 新,Python 加载陈旧字节码
|
||||
(旧逻辑上线,曾导致 1062 假象)。部署后必须 `find src -name __pycache__ -exec rm -rf {} +` 再重启;
|
||||
|
||||
Reference in New Issue
Block a user