springboot3+vue3全栈项目 big-event(后端 -- 用户相关接口)

182 阅读1分钟

后端部分(用户相关接口)

代码仓库:gitee.com/wiedersehen…

注册功能

  • 技术点总结
    • Spring Validation (在参数校验时)
      1. 引入validation依赖
      2. 在参数上添加@Pattern注解,指定校验规则
      3. 在全局异常处理器中处理参数校验失败的异常

9B4C225F830CF208CBEA53DBA64453AF.png

登录功能

  • 技术点总结
    • jwt
      1. 组成
        • Header(头),记录令牌类型和签名算法
        • PayLoad(载荷),携带自定义的信息
        • Signature(签名),对头部和载荷进行加密计算得来
        • 注意:Payload部分由Base64编码而成,不能把密码等隐私数据放入claims中
      2. 使用
        • 引入jwt依赖
        • 调用Api生成和校验令牌
        • 解析令牌
  • 拦截器校验
    1. 创建拦截器, 写jwt校验代码

5854010CCF8F2A59683DCB100678C3E1.png 2. 创建配置类,并注册拦截器

2842621298CB855569E9BF0046480AA9.png

获取用户信息功能

  • 技术点总结
    • ThreadLocal (线程安全)
      1. 用来存取数据:set() / get()
      2. 使用ThreadLocal存储的数据,线程安全
      3. 请求结束后释放 remove() ,防止内存泄露

C8222F0FFEEF5EAC64BBA34274745F1B.png

更新用户信息功能

  • 技术点总结
    • 实体参数校验
      • 实体类的成员变量上添加注解

        • @NotNull
        • @NotEmpty
        • @Email(限定邮箱格式)
        • @URL(限定必须为url)
      • 接口方法的实体参数上添加@Validated注解

微信图片_20241009225045.png

修改用户密码

  • 思路
    1. 三个参数:oldPwd、newPwd、rePwd(可以封装为一个实体类)
    2. 从数据库查询对应用户原来的密码并比对
    3. 比对newPwd和rePwd是否相同
    4. 调用service和mapper接口实现更改密码

46405B9FDA2A994636F3A6124193F144.png