# 查看个人信息 API - **路径**: `/api/v3/view_profile` - **方法**: `GET` - **功能**: 获取用户的个人信息。 ## 描述 此接口用于查询用户的详细个人资料。普通用户可以查看自己的信息,而管理员可以查看任何用户的信息。 ## 认证 - **需要 JWT**: 是 - **权限要求**: - 普通用户 (`user` 或更高权限) 可以查看自己的信息。 - 管理员 (`admin` 权限) 可以查看任何用户的信息。 ## 请求 ### 请求头 | Header | 类型 | 描述 | | --------------- | ------ | ------------------------- | | `Authorization` | string | `Bearer ` | ### 查询参数 | 参数 | 类型 | 描述 | 是否必须 | | ---- | ------ | ------------------------------------------------------------ | -------- | | `who` | string | 要查询用户的微信 OpenID。如果留空,则默认为当前登录用户的 OpenID。 | 否 | **请求示例 (查看自己信息)**: ``` GET /api/v3/view_profile ``` **请求示例 (管理员查看他人信息)**: ``` GET /api/v3/view_profile?who=hajimihajimihajimi ``` ## 响应 ### 成功响应 (200 OK) 响应体包含一个 `profile` 对象,其中有用户的详细信息。 | 字段 | 类型 | 描述 | | --------- | ------- | ------------------------------------------ | | `success` | boolean | `true` 表示操作成功 | | `msg` | string | 成功的提示信息 | | `profile` | object | 用户信息对象 | | `profile.sid` | string | 学号 | | `profile.name` | string | 姓名 | | `profile.block` | string | 宿舍楼 | | `profile.access` | string | 用户权限等级 (例如: "user", "admin") | | `profile.room` | string | 房间号 | | `profile.phone` | string | 手机号码 | | `profile.isp` | string | 宽带运营商 | | `profile.account` | string | 宽带账号 | | `profile.wx` | string | 微信 OpenID | **响应示例**: ```json { "success": true, "msg": "user profile", "profile": { "sid": "20230001001", "name": "张三", "block": "XH", "access": "user", "room": "1501", "phone": "13800138000", "isp": "mobile", "account": "12345678901", "wx": "hajimihajimihajimi" } } ``` ### 失败响应 #### 400 Bad Request (业务逻辑错误) | `msg` 内容 | `errType` | 描述 | | -------------- | --------- | -------------- | | "无法找到该微信账户所请求的用户" | `logic` | 目标用户不存在 | #### 403 Forbidden (权限错误) - 当非管理员用户尝试查看其他用户的信息时返回。 - 当非活跃用户(如 `unregistered`)尝试调用此接口时返回。 ```json { "success": false, "msg": "only admins can view other users' profiles", "errType": "auth" } ``` ```json { "success": false, "msg": "only active users can access this API", "errType": "auth" } ``` #### 500 Internal Server Error (服务器内部错误) 当发生未预料到的数据库错误或其他内部错误时返回。 ```json { "success": false, "msg": "system met a uncaught error,please view logs.", "errType": "internal" } ``` ## 注意事项 - 如果不提供 `who` 查询参数,API 将自动查询当前通过 JWT 认证的用户的信息。 - 只有管理员权限的用户才能使用 `who` 参数查询其他用户的信息。