044 用户注册功能04--完成注册功能
Posted luckyplj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了044 用户注册功能04--完成注册功能相关的知识,希望对你有一定的参考价值。
实现用户注册功能,需要对用户密码进行加密存储,使用MD5加密,加密过程中使用随机码作为salt加盐。另外还需要对用户输入的短信验证码进行校验。
1.接口说明
(1)接口路径:
POST /register
(2)返回结果:
-
201:注册成功
-
400:参数有误,注册失败
-
-
1)校验短信验证码
-
2)生成盐
-
3)对密码加密
-
4)写入数据库
-
/** * 注册 * @param user 接收用户对象信息(form表单提交,user对象进行接收) * @param code 接收表单参数--手机验证码 * @return */ @PostMapping("register") public ResponseEntity<Void> register(User user, @RequestParam("code") String code) { Boolean boo = this.userService.register(user, code); if (boo == null || !boo) { return ResponseEntity.status(HttpStatus.BAD_REQUEST).build(); } return new ResponseEntity<>(HttpStatus.CREATED); }
3.UserService
/** * 用户注册功能 * @param user * @param code * @return */ public Boolean register(User user, String code) { // 校验短信验证码 String cacheCode = this.redisTemplate.opsForValue().get(KEY_PREFIX + user.getPhone()); if (!StringUtils.equals(code, cacheCode)) { return false; } // 生成盐 String salt = CodecUtils.generateSalt(); user.setSalt(salt); // 对密码加密 user.setPassword(CodecUtils.md5Hex(user.getPassword(), salt)); // 强制设置不能指定的参数为null user.setId(null); user.setCreated(new Date()); // 添加到数据库 boolean b = this.userMapper.insertSelective(user) == 1; if(b){ // 注册成功,删除redis中的记录 this.redisTemplate.delete(KEY_PREFIX + user.getPhone()); } return b; }
此处使用了CodeUtils:
该工具类需要apache加密工具包:
<dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </dependency>
4.测试
我们通过PostMan测试:
http://api.leyou.com/api/user/register?username=lucky&password=plj824&phone=17826828544&code=984971
查看数据库:
以上是关于044 用户注册功能04--完成注册功能的主要内容,如果未能解决你的问题,请参考以下文章