Implement Redis CHIS session store
This commit is contained in:
+10
@@ -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)`
|
||||
|
||||
输入:
|
||||
|
||||
Reference in New Issue
Block a user