从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验证接口
输入正确的用户名和密码:登陆成功

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

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

posted @ 2021-09-02 17:56  只要不兔的学习笔记  阅读(106)  评论(0)    收藏  举报