Files
sentinel-home-ai/.workbuddy/memory/2026-08-31.md

2.7 KiB
Raw Permalink Blame History

2026-08-31 工作日志

fam-core 登录接入 auth-hub 统一登录(已部署 + 端到端验证)

目标(用户明确)

http://129.146.26.249:8000fam-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.1RS256 验签必需)
    • 部署新 auth.pycat 管道覆盖)
    • .env 追加 4 个变量:AUTH_HUB_ISSUER=http://129.146.26.249:5300AUTH_HUB_CLIENT_ID=a2PJTZuKQYxt1oGhAUTH_HUB_CLIENT_SECRET=<上面>AUTH_HUB_REDIRECT_URI=http://129.146.26.249:8000/api/auth/callback
    • pycache、杀双 gunicorn今天 18:56 又一个旧进程 + 8/29 旧 master、单实例重启

/login 302 → auth-hub /authorizePKCE→ hub 登录ericwyuan/iLoveJava5 200authorize 302 回 :8000/api/auth/callback?code&state → fam-core 换 token+JWKS 验签 → 种 fam_session → /api/auth/check = {"authed":true}/api/status 200 ✓

注意

  • 本地 repo 3 个提交待 push8120d2a SSO + 2 docs等用户确认推送
  • NAS 仍跑旧版其余代码webhook 移除等未部署,独立待办)
  • 密码登录 /api/login 已移除fam-ui SPA 无登录逻辑,不受影响

补充webhook/旧前端清理部署到 NAS用户确认"清理"

  • 全量比对 NAS vs repoapp.pymotion_bp.pyconfig.yaml 三处是旧版(其余已同步)
  • 同步3 个文件app.py 移除 static_bp/refresh_camera_map 调用motion_bp.py 移除 webhook 端点; config.yaml 移除 camera_name_to_id/enrich_window_sec
  • 删除废弃:static_app.pyfam-ui/ 目录、根 start_ui.shscripts/start_ui.sh
  • 清 pycache + 单实例重启
  • 验证:启动日志无 refresh_camera_map 告警;/api/ss/webhook → 401已移除白名单与路由 SSO 登录 /login 302 → auth-hub 正常、{"authed":true}/api/ss/status 200Oracle 同步正常
  • 至此 NAS fam-core 代码与本地 repo 全量一致(除 .env/venv/logs