Java登录专题-----手机验证码登录 发送验证码
原创
©著作权归作者所有:来自51CTO博客作者孔汤姆1的原创作品,请联系作者获取转载授权,否则将追究法律责任
1.打印日志 ,检验入参
入参为 mobile 手机号
action动作 分为注册,与登录
2.
UserInfoModel userInfoModel = new UserInfoModel();
userInfoModel.setMobile(mobile);
List<UserInfoModel> users = userInfoDao.selectByExample(userInfoModel);
判断该手机号是否被注册
3.
发送 手机验证码,将手机验证码存入redis以便以后续的核对
logger.info("smsTaskService.sendVerificationSms Request:==" + JSON.toJSONString(sendVerificationSmsVO));
SendVariCodeResult sendVariCodeResult = smsTaskService.sendVerificationSms(sendVerificationSmsVO);
logger.info("smsTaskService.sendVerificationSms Response:==" + JSON.toJSONString(sendVariCodeResult));
simpleRedisAccessUtils.setStrValue(mobile, JSONObject.toJSONString(sendVariCodeResult), Constants.SMS_EXPIRE_TIME);
根据手机号存入即可
4.跳转登录接口进行检验
if (EmptyUtils.isNotEmpty(vo.getVariCode()) && EmptyUtils.isEmpty(vo.getPassword())) {
//判断使用短信验证码登录
if (!variCode.equals(vo.getVariCode())) {
String json = simpleRedisAccessUtils.getStrValue(vo.getUserAccount());
SendVariCodeResult sendVariCodeResult = JSONObject.parseObject(json, SendVariCodeResult.class);
logger.info("sendVariCodeResult:" + JSONObject.toJSONString(sendVariCodeResult));
if ((EmptyUtils.isEmpty(sendVariCodeResult) && !variCode.equals(vo.getVariCode())) || (!sendVariCodeResult.getVariCode().equals(vo.getVariCode()) && !variCode.equals(vo.getVariCode()))) {
base.setReturnCode(Constants.VCODE_UNAVAILABLE_RETURN_CODE);
base.setReturnMsg("验证码错误");
return base; }
可以在判断的时候加入万能码,这样的话能够进行直接登录
]