2026/4/6 4:40:13
网站建设
项目流程
用户管理模块负责处理用户注册登录和权限控制功能其核心目标是确保用户身份的安全性提供灵活的权限管理机制支持角色的访问控制通过RBAC实现不同角色的权限区分通过组织标签实现数据访问权限隔离为其他模块提供用户信息支持功能需求技术选型关键流程用户注册流程接收用户注册请求验证用户名和密码检查用户名是否已存在使用md5加密创建用户记录设置默认权限创建私人组织标签将私人组织标签设置为用户的主组织标签返回注册成功响应用户登录流程接收用户登录请求获取用户名和密码查询用户记录并验证密码加载用户主织标签信息生成包含用户信息和组织标签的jwt token返回登录成功响应和token组织标签管理流程管理员创建组织标签设置标签名称和描述可以选择设置父级组织标签管理员为用户分配组织标签系统自动保留用户的私人组织标签确保其不能被移除用户查看自己的组织标签权限验证流程解析请求通道JWT token 验证有效性提取用户id角色和组织标签信息对功能权限请求根据用户角色判断是否允许访问对数据权限请求根据用户组织标签判断是否可以访问特定资源允许或拒绝请求访问接口设计01、用户注册接口URL: /api/v1/users/registerMethod: POSTRequest Body:{ username: string, // 用户名唯一 password: string // 密码明文传输后端加密存储 }Response:{ code: 200, // 成功 message: User registered successfully } { code: 400, // 失败 message: Username already exists }02、用户登录接口URL: /api/v1/users/loginMethod: POSTRequest Body:{ username: string, password: string }Response:{ code: 200, // 成功 message: Login successful, data: { token: JWT_TOKEN_STRING } } { code: 401, // 失败 message: Invalid username or password }03、获取用户信息接口URL: /api/v1/users/meMethod: GETHeaders:Authorization: Bearer JWT_TOKEN_STRINGResponse:{ code: 200,// 成功 message: Success, data: { id: 1, username: example_user, role: USER, orgTags: [PRIVATE_example_user, dept1, team2], primaryOrg: PRIVATE_example_user } } { code: 401, // 失败 message: Unauthorized }04、用户列表查询接口URL: /api/v1/admin/users/listMethod: GETHeaders:Authorization: Bearer JWT_TOKEN_STRINGQuery Parameters:page: 页码从1开始默认1size: 每页条数默认20keyword: 搜索关键词可选orgTag: 按组织标签筛选可选status: 用户状态可选0禁用1启用Response:{ code: 200, message: Get users successful, data: { content: [ { userId: user1, username: 用户1, email: , status: 1, orgTags: [dept1, team2], primaryOrg: dept1, createTime: 2023-01-01T12:00:00Z, lastLoginTime: 2023-06-15T08:30:00Z }, // 更多用户... ], totalElements: 150, totalPages: 8, size: 20, number: 0 } }05、组织标签管理接口5.1 创建组织标签管理员URL: /api/v1/admin/org-tagsMethod: POSTHeaders:Authorization: Bearer JWT_TOKEN_STRINGRequest Body:{ tagId: string, // 标签ID唯一 name: string, // 标签名称 description: string, // 标签描述 parentTag: string // 父标签ID可选 }Response:{ code: 200, // 成功 message: Organization tag created successfully }5.2 为用户分配组织标签adminURL: /api/v1/admin/users/{userId}/org-tagsMethod: PUTHeaders:Authorization: Bearer JWT_TOKEN_STRINGRequest Body:{ orgTags: [tag1, tag2] }Response:{ code: 200, // 成功 message: Organization tags assigned successfully }5.3 设置用户主组织URL: /api/v1/users/primary-orgMethod: PUTHeaders:Authorization: Bearer JWT_TOKEN_STRINGRequest Body:{ primaryOrg: tag1, userId:xxx }Response:{ code: 200, message: Primary organization set successfully }5.4 获取用户组织标签详情URL: /api/v1/users/org-tagsMethod: GETHeaders:Authorization: Bearer JWT_TOKEN_STRINGResponse:{ code: 200, message: Get user organization tags successful, data: { orgTags: [PRIVATE_example_user, dept1, team2], primaryOrg: PRIVATE_example_user, orgTagDetails: [ { tagId: PRIVATE_example_user, name: example_user的私人空间, description: 用户的私人组织标签仅用户本人可访问 }, { tagId: dept1, name: 部门1, description: 部门1的组织标签 }, { tagId: team2, name: 团队2, description: 团队2的组织标签 } ] } }5.5 组织标签树查询接口 (admin)URL: /api/v1/admin/org-tags/treeMethod: GETHeaders:Authorization: Bearer JWT_TOKEN_STRINGResponse:{ code: 200, message: Get organization tag tree successful, data: [ { tagId: dept1, name: 部门1, description: 部门1描述, children: [ { tagId: team1, name: 团队1, description: 团队1描述, children: [] }, { tagId: team2, name: 团队2, description: 团队2描述, children: [] } ] }, { tagId: dept2, name: 部门2, description: 部门2描述, children: [] } ] }5.6 更新组织标签接口(admin)URL: /api/v1/admin/org-tags/{tagId}Method: PUTHeaders:Authorization: Bearer JWT_TOKEN_STRINGRequest Body:{ name: string, // 新标签名称 description: string, // 新标签描述 parentTag: string // 新父标签ID可选 }Response:{ code: 200, message: Organization tag updated successfully }5.7 删除组织标签接口URL: /api/v1/admin/org-tags/{tagId}Method: DELETEHeaders:Authorization: Bearer JWT_TOKEN_STRINGResponse:{ code: 200, // 成功 message: Organization tag deleted successfully } { code: 409, // 错误标签已被使用 message: Cannot delete tag as it is associated with users or documents }库表设计01、用户表 (users)02、组织标签表