项目用的是security来做安全校验,表单验证的就不谈了,现在讲一下我用手机验证码登陆的思路及实现方式。
手机验证码登陆的思路如下:
1、用户输入手机号,点击获取验证码
2、系统生成随机验证码,保存到缓存中,同时给用户下发验证码信息。
3、用户输入验证码后,和缓存中进行比对。
4、如果验证码正确,查出手机对应的用户。
5、根据查出来的用户,生成用户令牌,完成验证。(我主要就讲这里,其它步骤并不是重点,直接上代码)
@RequestMapping("/ajaxLogin")
@ResponseBody
public BaseResult<T> ajaxLogin(@RequestBody String json) {
log.info("json============="+json);
//校验验证码
String checkrs=userRemote.checkCheckCode(json);
log.info("checkrs============="+checkrs);
if(checkrs.equals("error")) {
//如果校验失败,返回错误信息
return new BaseResult<>("001","验证码校验错误");
}
//如果校验正确,根据手机号查出用户信息
JSONObject object=JSONObject.parseObject(json);
String phone=object.getString("phone");
String userrString=userRemote.getUserInfoByPhone(phone);
log.info("userrString============="+userrString);
if(StringUtils.isBlank(userrString)) {
return new BaseResult<>("001","手机号未注册或未绑定用户");
}
JSONObject