用户登录注册接口
创建登录和注册接口
创建LoginVo和RegisterVo用于数据封装
LoginVo
@Data
@ApiModel(value="登录对象", description="登录对象")
public class LoginVo {@ApiModelProperty(value = "手机号")private String mobile;@ApiModelProperty(value = "密码")private String password;
}
RegisterVo
@Data
@ApiModel(value="注册对象", description="注册对象")
public class RegisterVo {@ApiModelProperty(value = "昵称")private String nickname;@ApiModelProperty(value = "手机号")private String mobile;@ApiModelProperty(value = "密码")private String password;@ApiModelProperty(value = "验证码")private String code;
}
创建controller编写登录和注册方法
MemberApiController.java@RestController
@RequestMapping("/ucenterservice/apimember")
@CrossOrigin
public class MemberApiController {@Autowiredprivate MemberService memberService;@ApiOperation(value = "会员登录")@PostMapping("login")public R login(@RequestBody LoginVo loginVo) {String token = memberService.login(loginVo);return R.ok().data("token", token);}@ApiOperation(value = "会员注册")@PostMapping("register")public R register(@RequestBody RegisterVo registerVo){memberService.register(registerVo);return R.ok();}
} 创建service接口和实现类
@Service
public class MemberServiceImpl extends ServiceImpl implements MemberService {@Autowiredprivate RedisTemplate redisTemplate;/*** 会员登录* @param loginVo* @return*/@Overridepublic String login(LoginVo loginVo) {String mobile = loginVo.getMobile();String password = loginVo.getPassword();//校验参数if(StringUtils.isEmpty(mobile) ||StringUtils.isEmpty(password) ||StringUtils.isEmpty(mobile)) {throw new Exception(20001,"error");}//获取会员Member member = baseMapper.selectOne(new QueryWrapper().eq("mobile", mobile));if(null == member) {throw new Exception(20001,"error");}//校验密码if(!MD5.encrypt(password).equals(member.getPassword())) {throw new Exception(20001,"error");}//校验是否被禁用if(member.getIsDisabled()) {throw new Exception(20001,"error");}//使用JWT生成token字符串String token = JwtUtils.getJwtToken(member.getId(), member.getNickname());return token;}/*** 会员注册* @param registerVo*/@Overridepublic void register(RegisterVo registerVo) {//获取注册信息,进行校验String nickname = registerVo.getNickname();String mobile = registerVo.getMobile();String password = registerVo.getPassword();String code = registerVo.getCode();//校验参数if(StringUtils.isEmpty(mobile) ||StringUtils.isEmpty(mobile) ||StringUtils.isEmpty(password) ||StringUtils.isEmpty(code)) {throw new Exception(20001,"error");}//校验校验验证码//从redis获取发送的验证码String mobleCode = redisTemplate.opsForValue().get(mobile);if(!code.equals(mobleCode)) {throw new Exception(20001,"error");}//查询数据库中是否存在相同的手机号码Integer count = baseMapper.selectCount(new QueryWrapper().eq("mobile", mobile));if(count.intValue() > 0) {throw new Exception(20001,"error");}//添加注册信息到数据库Member member = new Member();member.setNickname(nickname);member.setMobile(registerVo.getMobile());member.setPassword(MD5.encrypt(password));member.setIsDisabled(false);member.setAvatar("http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eoj0hHXhgJNOTSOFsS4uZs8x1ConecaVOB8eIl115xmJZcT4oCicvia7wMEufibKtTLqiaJeanU2Lpg3w/132");this.save(member);}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
