上一个提交 git add 漏了 docs/,架构/开发/需求/auth-hub 集成文档里的 NAS IP、8124 端口还是旧的,补上。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
auth-hub 集成说明
本应用不自己管账号——登录由 auth-hub(统一 SSO / OIDC 提供方)承接, 本仓库只做 OAuth2 client 侧的事。
依赖的配置(backend/.env)
| 变量 | 说明 |
|---|---|
AUTH_HUB_BASE_URL |
auth-hub 服务地址(生产 http://129.146.26.249:5300) |
AUTH_HUB_CLIENT_ID |
本应用在 auth-hub 注册的 client |
AUTH_HUB_CLIENT_SECRET |
对应 secret(只放 .env,不入库) |
AUTH_HUB_REDIRECT_URI |
回调地址,必须与 auth-hub 侧注册值完全一致 |
生产 client(甲骨文云主机,garmin.zichuan.xyz;2026-09-12 前是 NAS :8124)
- client_id:
996aLPw4T5gl-rYZ - 在 auth-hub 注册的回调:
https://garmin.zichuan.xyz/auth/callback(唯一注册的回调地址;NAS 时代 的 LAN / frp 地址已用manage_clients remove-redirect-uri清掉)
- 注意 auth-hub 的 dev 与 prod 是两套独立数据库、各自注册 client: 在 dev auth-hub 上创建的 client 不能用于 prod,反之亦然。
流程
- 前端请求
POST /api/auth/auth-hub/start→ 拿到 auth-hub 授权 URL,浏览器跳转; - auth-hub 登录后回调
GET /api/auth/callback?code=…; - 后端
services/auth_hub_client.py:exchange_code_for_token(换 token)→get_userinfo→find_or_create_user(无则建号)→ 本应用签 JWT 返回前端。
本地邮箱/密码注册登录(曾经的 /api/auth/register|login)已移除。
Garmin 账号授权是另一条独立流程(见 routes/garmin.py 的 /api/garmin/login),
与 Web 登录无关。