UserController
UserController 是一个用于处理用户相关操作的 Spring Boot 控制器,包括注册、登录、获取用户信息和更新用户信息等功能。它使用 UserService 来执行具体的业务逻辑。
类注解
@RestController: 标记为 RESTful 控制器,所有响应方法的返回值将直接写入 HTTP 响应体中。@RequestMapping("/user"): 指定控制器处理的请求路径前缀。@Validated: 启用 Spring 的方法级验证机制。
依赖注入
@Autowired: 自动注入 UserService 实例。
API 接口
用户注册
路径: /regist
方法: POST
参数:
username: 用户名,必须符合正则表达式 ^\S{1,16}$,表示1到16个非空白字符。password: 用户密码,必须符合正则表达式 ^(?=.[a-z])(?=.\d)[a-zA-Z\d]{8,32}$,表示8到32个字符,至少包含一个小写字母和一个数字。
描述: 用户注册,如果用户名已存在,则注册失败。
返回值: 操作结果,成功时返回成功信息,失败时返回错误信息(如用户名已被占用)。
用户登录
路径: /login
方法: POST
参数:
username: 用户名,必须符合上述正则表达式。password: 用户密码,必须符合上述正则表达式。
描述: 用户登录,验证用户名和密码。成功后返回 JWT 令牌。
返回值: 操作结果,成功时返回 JWT 令牌,失败时返回错误信息(如用户名错误或密码错误)。
获取用户信息
路径: /userInfo
方法: GET
描述: 获取当前登录用户的信息。
返回值: 操作结果,成功时返回用户信息。
更新用户信息
路径: /update
方法: PUT
请求体: User,需要通过请求体提交完整的用户信息对象。
描述: 更新用户信息。
返回值: 操作结果,成功时返回成功信息。
更新用户头像
路径: /updateAvatar
方法: PATCH
参数: avatarUrl,用户头像的 URL,必须是有效的 URL 格式。
描述: 更新用户头像 URL。
返回值: 操作结果,成功时返回成功信息。
更新用户密码
路径: /updatePwd
方法: PATCH
请求体: 包含 old_pwd(原密码)、new_pwd(新密码)、re_pwd(确认新密码)的键值对。
描述: 更新用户密码。首先验证原密码是否正确,然后检查新密码和确认密码是否一致。
返回值: 操作结果,成功时返回成功信息,失败时返回错误信息(如缺少必要的参数、原密码不正确、两次填写的新密码不一致)。
注意事项
所有接口的返回值都使用了 Result 类型,以统一响应格式,方便前端处理。
用户密码在存储和比较时使用 MD5 加密,增加安全性。
登录成功后,使用 JWT 令牌进行身份验证和授权,令牌中包含用户ID和用户名信息。
Last updated