# 前后端联调说明

## 1. 登录

### B 端账号密码登录

- `POST /auth/login`
- 入参：
  - `phone`
  - `password`
  - `role`（可选）
  - `hospitalId`（可选）
- 若返回 `needSelect: true`，继续调用：
  - `POST /auth/login/confirm`
  - 入参：`loginTicket + userId`

### B 端小程序

- 第一步：`POST /auth/miniapp/b/phone-login`
- 入参：
  - `loginCode`
  - `phoneCode`
- 若返回 `needSelect: true`，继续调用：
  - `POST /auth/miniapp/b/phone-login/confirm`
  - 入参：`loginTicket + userId`

### C 端小程序

- `POST /auth/miniapp/c/phone-login`
- 入参：
  - `loginCode`
  - `phoneCode`
- 要求当前手机号唯一关联 1 份患者档案，否则返回冲突错误

## 2. C 端生命周期

- 登录成功后可先调用：`GET /c/patients/me`
- 返回当前 C 端账号信息与当前手机号唯一命中的患者基础档案
- 登录成功后调用：`GET /c/patients/my-lifecycle`
- 不再需要传 `phone` 或 `idCard`
- Bearer Token 使用 C 端患者登录返回的 `accessToken`
- 返回结构改为顶层 `patient + lifecycle`，事件项内不再重复返回 `patient`

## 3. B 端说明

- B 端业务接口仍使用 Bearer Token
- 后台管理端与小程序都可以复用 `POST /auth/login` 做账号密码登录
- `GET /auth/me` 仍可读取当前院内账号信息
- 同手机号多账号时，前端必须先让用户选定账号，再提交确认登录
- 同一个微信号可绑定多个院内账号，切换账号时继续走“小程序登录 -> 候选账号选择”即可
