Skip to content

用户管理 API 快速参考

快速了解用户管理API的主要端点和使用方法


🚀 快速开始

认证方式

bash
# 所有API都需要在请求头中携带JWT Token
Authorization: Bearer <your_jwt_token>

基础URL

http://localhost:8000

📋 主要端点概览

用户查询

端点方法权限要求说明
/usersGET老师/学校管理员/平台管理员通用用户查询
/users/studentsGET老师/学校管理员/平台管理员获取学生列表
/users/teachersGET学校管理员/平台管理员获取教师列表
/users/school_adminsGET平台管理员获取学校管理员列表
/users/platform_adminsGET平台管理员获取平台管理员列表
/users/{user_id}GET根据角色限制获取用户详情

用户管理

端点方法权限要求说明
/schools/{school_id}/users:studentPOST学校管理员/平台管理员创建学生账号
/schools/{school_id}/users:teacherPOST学校管理员/平台管理员创建教师账号
/schools/{school_id}/users:school_adminPOST平台管理员创建学校管理员
/users/{user_id}PUT根据角色限制更新用户信息
/users/{user_id}:reset_passwordPOST根据角色限制重置用户密码
/users/{user_id}:statusPOST学校管理员/平台管理员启用/禁用账号
/users/{user_id}DELETE根据角色限制删除用户

班级管理

端点方法权限要求说明
/classes/{class_id}/membersGET班级教师/学校管理员/平台管理员获取班级成员
/classes/{class_id}/membersPOST班级教师/学校管理员/平台管理员添加班级成员
/classes/{class_id}/members/{user_id}DELETE班级教师/学校管理员/平台管理员移除班级成员
/classes/{class_id}/teachersGET班级教师/学校管理员/平台管理员获取班级教师
/classes/{class_id}/teachersPOST学校管理员/平台管理员指派班级教师
/classes/{class_id}/teachers/{teacher_id}DELETE学校管理员/平台管理员移除班级教师

学校管理

端点方法权限要求说明
/schoolsGET学校管理员/平台管理员获取学校列表
/schoolsPOST平台管理员创建学校
/schools/{school_id}PUT学校管理员/平台管理员更新学校信息
/schools/{school_id}DELETE平台管理员删除学校
/schools/{school_id}/adminsGET平台管理员获取学校管理员
/schools/{school_id}/adminsPOST平台管理员指派学校管理员
/schools/{school_id}/admins/{user_id}DELETE平台管理员撤销学校管理员

💡 常用操作示例

1. 创建学生账号

bash
curl -X POST "http://localhost:8000/schools/1/users:student" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "student001",
    "password": "Init@123",
    "real_name": "张三",
    "class_ids": [1, 2]
  }'

2. 获取学生列表

bash
# 老师获取本班学生
curl -X GET "http://localhost:8000/users/students?class_id=1&page=1&size=20" \
  -H "Authorization: Bearer <token>"

# 学校管理员获取本校学生
curl -X GET "http://localhost:8000/users/students?school_id=1&page=1&size=20" \
  -H "Authorization: Bearer <token>"

3. 重置用户密码

bash
curl -X POST "http://localhost:8000/users/123:reset_password" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"new_password": "NewPass@123"}'

4. 添加班级成员

bash
curl -X POST "http://localhost:8000/classes/1/members" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"user_ids": [1, 2, 3]}'

🔐 权限说明

角色权限矩阵

操作学生老师学校管理员平台管理员
查看自己信息
查看本班学生
查看本校用户
查看全平台用户
创建学生账号
创建教师账号
创建学校管理员
管理学校

作用域限制

  • 学生:只能访问自己的信息
  • 老师:只能管理任教班级的学生
  • 学校管理员:只能管理本校的用户和班级
  • 平台管理员:可以管理全平台的用户和学校

⚠️ 注意事项

安全要求

  1. 所有API都需要JWT认证
  2. 密码必须符合复杂度要求(8位以上,包含大小写字母、数字、特殊字符)
  3. 敏感操作会记录审计日志

数据限制

  1. 用户名必须唯一
  2. 删除用户前会检查关联数据
  3. 建议使用软删除(禁用账号)而不是硬删除

性能考虑

  1. 大量数据查询时使用分页
  2. 支持按角色、学校、班级等条件筛选
  3. 支持模糊搜索用户名和真实姓名

📚 相关文档


🆘 常见问题

Q: 如何获取用户的上级信息?

A: 通过 parent_user_id 字段可以知道用户的直接上级,形成权限继承链。

Q: 学生可以自己修改密码吗?

A: 学生不能直接修改密码,需要通过老师或管理员重置。

Q: 如何批量导入用户?

A: 可以通过批量调用创建用户API,或使用班级成员批量添加功能。

Q: 删除学校前需要做什么?

A: 需要先删除或迁移学校下的所有用户和班级,确保没有关联数据。