Implement CHIS login flow
This commit is contained in:
+32
@@ -146,6 +146,38 @@
|
||||
|
||||
## 内部模块合约
|
||||
|
||||
### `ChisLoginClient.from_config(config).login(username, password)`
|
||||
|
||||
输入:
|
||||
|
||||
```python
|
||||
username: str
|
||||
password: str
|
||||
```
|
||||
|
||||
输出:
|
||||
|
||||
```python
|
||||
ChisLoginSession(
|
||||
cookie=str,
|
||||
jsessionid=str,
|
||||
role_id=str,
|
||||
role_name=str,
|
||||
user_name=str,
|
||||
roles_result=dict,
|
||||
apps_result=dict,
|
||||
)
|
||||
```
|
||||
|
||||
职责:
|
||||
|
||||
- 从 `CHIS_BASE_URL`、`CHIS_PUBLIC_KEY`、`CHIS_PROXY` 创建登录客户端。
|
||||
- 调用 `logon/myRoles`,使用 SM2 加密密码和时间戳 `d`。
|
||||
- 优先选择 `责任医生助理` 或 `责任医生` 角色。
|
||||
- 调用 `logon/myApps` 获取应用上下文。
|
||||
- 从 `Set-Cookie` 提取 `JSESSIONID`,组装 CHIS cookie。
|
||||
- 登录失败、缺少允许角色、缺少 cookie 时抛出 `ChisLoginError`,错误对象包含稳定 `code`。
|
||||
|
||||
### `ChisSessionManager.ensure_session(account_ref)`
|
||||
|
||||
输入:
|
||||
|
||||
Reference in New Issue
Block a user