✅派聪明 RAG用户管理模块设计方案
用户管理模块负责处理用户的注册、登录和权限控制功能。该模块的核心目标是:
- 确保用户身份的安全性。
- 提供灵活的权限管理机制,支持基于角色的访问控制,通过 RBAC 实现对不同角色(如普通用户和管理员)的功能权限区分,通过组织标签实现数据访问权限隔离。
- 为其他模块提供用户信息支持。
一、功能需求
二、技术选型
三、关键流程
01、用户注册流程
- 接收用户注册请求,验证用户名和密码;
- 检查用户名是否已存在;
- 使用 BCrypt 加密密码;
- 创建用户记录,设置默认角色为USER;
- 创建用户私人组织标签(PRIVATE_username);
- 将私人组织标签设置为用户的主组织标签;返回注册成功响应。
02、用户登录流程
- 接收用户登录请求,获取用户名和密码;
- 查询用户记录并验证密码;加载用户组织标签信息;
- 生成包含用户信息和组织标签的 JWT Token;
- 返回登录成功响应和 Token。
03、组织标签管理流程
- 管理员创建组织标签,设置标签名称和描述;
- 可选择设置父级组织标签(支持简单层级);
- 管理员为用户分配组织标签;
- 系统自动保留用户的私人组织标签,确保其不被移除;
- 用户查看自己的组织标签。
04、权限验证流程
- 解析请求头中的 JWT Token,验证有效性;
- 提取用户 ID、角色和组织标签信息;
- 对功能权限请求,根据用户角色判断是否允许访问;
- 对数据权限请求,根据用户组织标签判断是否可以访问特定资源;
- 允许或拒绝请求访问;权限验证流程具体讲解见:✅如何基于Spring Security实现RBAC?
四、接口设计
01、用户注册接口
- URL: /api/v1/users/register
- Method: POST
- Request Body:
{
"username": "string", // 用户名,唯一
"password": "string" // 密码(明文传输,后端加密存储)
}
- Response:
{
"code": 200, // 成功
"message": "User registered successfully"
}
{
"code": 400, // 失败
"message": "Username already exists"
}
02、用户登录接口
- URL: /api/v1/users/login
- Method: POST
- Request Body:
{
"username": "string",
"password": "string"
}
- Response:
1 条评论
回复