从0到1开发测试平台(四)增加登录接口
转载:https://cloud.tencent.com/developer/article/1665263
上篇文章我们了解了resultful相关知识,因此我们需要修改UserController,增加接口版本号,在类上面增加注解@RequestMapping("/api/v1/user"),修改之后UserController如下所示
@RestController
//增加
@RequestMapping("/api/v1/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/queryUser")
public List<User> queryUser(){
List<User> userList = userService.queryUserList();
return userList;
}
}
登录功能如果是上线系统需要考虑的点比较多,比如认证和授权,登录密码错误超过3次弹出图形验证码,超过5次锁定账号一小时,单点登录,加密方式比如2次md5加密加盐或者aes加密等等,登录成功之后登录信息存到操作日志和登录表等等,在这里我们用最小白的方式来做登录功能。
接下来我们就来新增登录接口
登录接口我们采用post请求方式,需要传入json格式User对象,所以我们的入参需要加上@RequestBody对象,否则,前端传入的参数后端无法接受,会出现接受的参数为空的情况。
UserMapper.xml增加登录校验用户的sql
<select id="queryUserByName" resultType="com.test.demo.bean.User">
select * from user where name= #{name}
</select>
UserMapper.java增加queryUserByName方法
User queryUserByName(String name);
UserService.java增加queryUserByName和login方法
User queryUserByName(String name);
Integer login(String name,String password);
UserServiceImpl.java增加queryUserByNamehe和login方法
@Override
public User queryUserByName(String name) {
return userMapper.queryUserByName(name);
}
@Override
public Integer login(String name, String password) {
User user = queryUserByName(name);
if(user == null){
return -1;
}
// String passwordParam = Md5Utils.string2MD5(password);
if(!password.equals(user.getPassword())){
return -1;
}
return 0;
}
UserController.java增加login方法
@PostMapping("/login")
public String login(@RequestBody User user){
if(user==null){
return "登陆失败";
}
if(user.getName()==null || "".equals(user.getName())){
return "请输入用户名或用户名错误";
}
if(user.getPassword()==null || "".equals(user.getPassword())){
return "请输入密码或密码错误";
}
Integer result = userService.login(user.getName(),user.getPassword());
if(result==-1){
return "用户名或密码错误";
}
return "登陆成功";
}
postman验证接口
输入正确的用户名和密码:登陆成功

输入正确的用户名,错误的密码:用户名或密码错误

输入正确的用户名,不输入密码,请输入密码或密码错误


浙公网安备 33010602011771号