# 认证模块说明(`src/auth`) ## 1. 目标 - 提供注册、登录、`/me` 身份查询。 - 使用 JWT 做认证,Guard 做鉴权,RolesGuard 做 RBAC。 ## 2. 核心接口 - `POST /auth/register`:注册账号(支持医生/工程师/院管等角色约束) - `POST /auth/login`:手机号 + 角色 + 密码登录(支持同手机号多院场景) - `GET /auth/me`:返回当前登录用户上下文 ## 3. 鉴权流程 1. `AccessTokenGuard` 从 `Authorization` 读取 Bearer Token。 2. 校验 JWT 签名与载荷字段。 3. 载荷映射为 `ActorContext` 注入 `request.user`。 4. `RolesGuard` 根据 `@Roles(...)` 判断角色是否允许访问。 ## 4. Token 约定 - Header:`Authorization: Bearer ` - 载荷关键字段:`sub`、`role`、`hospitalId`、`departmentId`、`groupId` ## 5. 错误码与中文消息 - 未登录/Token 失效:`401` + 中文 `msg` - 角色无权限:`403` + 中文 `msg` - 参数非法:`400` + 中文 `msg` 统一由全局异常过滤器输出:`{ code, msg, data: null }`。