该模块能做到的功能:
1阶:输入账号和密码,输入正确即可返回登录成功的信息,反之则登录失败
2阶:有简单的前端页面,有登录成功和失败的弹窗,还有登录成功的主页面
3阶:添加注册功能,前端页面的注册也可以使用,注册完的帐号能直接登录
接下来写注册功能
1.UserController
回到后端代码部分,进入UserController控制类里,在登录功能下面添加如下代码
/**
* 用户注册
* @param userRequest
* @return
*/
@PostMapping("register")
public Result register(@RequestBody @Valid UserRequest userRequest, BindingResult result) {
if (result.hasErrors()) {
// 处理验证失败的逻辑,例如返回错误信息
ResponseEntity<String> body = ResponseEntity.badRequest().body(result.getAllErrors().get(0).getDefaultMessage());
return Result.error(-1,body.getBody());
}
else {
if (userService.register(userRequest)) {
return Result.ok(userRequest,"success");
}
else {
return Result.error(500,"该账号已被注册过,请登录");
}
}
}
如果爆红,就快捷键Alt+Enter引入一下
2.UserService
引入到UserServiceImpl后,将register方法改成这样
/**
* 用户注册
* @param userRequest
* @return
*/
@Override
public boolean register(UserRequest userRequest) {
try {
userRequest.setPassword(MD5Util.encrypt(userRequest.getPassword()));
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
UserRequest onlyName = new UserRequest();
onlyName.setName(userRequest.getName());
if (userMapper.select(onlyName) != null){
return false;
}
return userMapper.register(userRequest);
}
3.UserMapper
将register改成
UserVo select(@Param("user") UserRequest userRequest);
将这个方法添加mybatis新增,生成新增语句 insert
<insert id="register">
INSERT INTO
login
VALUES
(NULL,
#{user.name},
#{user.password})
</insert>
现在运行即可实现注册功能
接下来,把2阶的前端注掉的代码给取消掉,这样,前端传递值就能和后端连上了