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