用户登录注册接口
創建登錄和注冊接口
創建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<MemberMapper, Member> implements MemberService {@Autowiredprivate RedisTemplate<String, String> 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<Member>().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<Member>().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);} }?
總結
- 上一篇: 整合进行短信发送
- 下一篇: OAuth2解决什么问题