Implement Redis CHIS session store

This commit is contained in:
ila
2026-07-05 11:35:59 +08:00
parent 83c1100aa8
commit 32037a04e1
12 changed files with 216 additions and 16 deletions
+10
View File
@@ -195,6 +195,16 @@ cookie: str
- 成功时返回当前账号信息响应。
- CHIS 返回非 200 业务码时抛出 `ChisLoginError(code="chis_session_invalid")`,用于判断会话无效。
### `RedisChisSessionStore`
职责:
- 使用 Redis key `chis:session:{account_ref}` 保存 CHIS 会话对象。
- `save(account_ref, session)` 按 `expires_at` 计算 TTL 并调用 Redis `setex`。
- `get(account_ref)` 只返回未过期会话;发现过期会话时删除缓存并返回 `None`。
- `delete(account_ref)` 清理指定账号引用的缓存。
- 会话 JSON 包含 `base_url`、`uid`、`role_id`、`manage_unit`、`cookies`、`login_at`、`expires_at`、`last_validated_at`,不得包含明文密码。
### `ChisSessionManager.ensure_session(account_ref)`
输入: