用户登录
用户登录验证接口
- 请求路径: /user/login
- 请求方式: POST
- 请求参数
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/07e77fabe2db14b7cc216ca7831dac7f.png)
返回的SysResult对象
- 该对象主要的作用将后端服务器数据与前端进行交互.并不是业务数据.所以采用VO的方式进行封装.
package com.jt.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class SysResult {
private Integer status;
private String msg;
private Object data;
public static SysResult fail() {
return new SysResult(201, "服务器处理失败", null);
}
public static SysResult success() {
return new SysResult(200, "服务器处理成功", null);
}
public static SysResult success(Object data) {
return new SysResult(200, "服务器处理成功", data);
}
public static SysResult success(String msg, Object data) {
return new SysResult(200, msg, data);
}
}
用户登录业务流程
- 如何表示用户已经登录? 密钥token
- 说明: 当用户登录成功之后,后台服务器返回一个密钥信息.标识用户已经登录成功. 之后用户将密钥保存到本地,方便以后使用. 密钥是唯一的字符串.采用UUID的方式实现.
- 如果没有密钥,返回到登录页面
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5d7a1821f98fd1bf3b2e070f23282cc2.png)
MD5说明
- MD5信息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
- MD5的加密算法 理论层面是不可逆的.所以不能被破解. 只能由x----->y 不能由y---->x 算法不允许
编辑UserController
package com.jt.controller;
import com.jt.pojo.User;
import com.jt.service.UserService;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@RestController
@CrossOrigin
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/login")
public SysResult login(@RequestBody User user) {
String token = userService.login(user);
if