当前位置: 首页 > news >正文

密云区社区建设网站郑州信息网首页

密云区社区建设网站,郑州信息网首页,网站开发进度计划书,做网站有名的公司1.发送验证码 1.发送post请求 数据封装在map 获取map的手机号码 2.调用service层将手机号码 传入过去 3.正常返回状态码200 RestController RequestMapping("/user") public class LoginController {Autowiredprivate UserService userService;/*** 获取登录验证码*…

1.发送验证码

        1.发送post请求 数据封装在map 获取map的手机号码

        2.调用service层将手机号码 传入过去

        3.正常返回状态码200

@RestController
@RequestMapping("/user")
public class LoginController {@Autowiredprivate UserService userService;/*** 获取登录验证码*   请求参数:phone (Map)*   响应:void*/@PostMapping("/login")public ResponseEntity login(@RequestBody Map map){String phone =(String) map.get("phone");userService.sendMsg(phone);return ResponseEntity.ok(null); //正常返回状态码200}
}

        1.随机生成6位数字验证码

        2.将验证码存入reids 使用固定前缀+手机号码 过期时间5分钟

@Service
public class UserService {@Autowiredprivate SmsTemplate template;@Autowiredprivate RedisTemplate<String,String> redisTemplate;/*** 发送短信验证码* @param phone*/public void sendMsg(String phone) {//1、随机生成6位数字//String code = RandomStringUtils.randomNumeric(6);String code = "123456";//2、调用template对象,发送手机短信//template.sendSms(phone,code);//3、将验证码存入到redisredisTemplate.opsForValue().set("CHECK_CODE_"+phone,code, Duration.ofMinutes(5));}}

2.用户登录

        1.从map中获得手机号码 和 验证码

        2.调用service层 传入手机号码 和验证码

        3.返回map map里必须要有token信息 和 isNew 是否新用户

    /*** 检验登录*/@PostMapping("/loginVerification")public ResponseEntity loginVerification(@RequestBody Map map) {//1、调用map集合获取请求参数String phone = (String) map.get("phone");String code = (String) map.get("verificationCode");//2、调用userService完成用户登录Map retMap = userService.loginVerification(phone,code);//3、构造返回return ResponseEntity.ok(retMap);}

        4.从redis获取验证码

        5.对redis验证码进行一个非空判断(防止已经删除了) 与 对传入来的验证码进行一个校验 如果

redis验证码非空 或 验证码错误 则抛出异常

        6.删除redis存的验证码(防止重复使用)

        7.创建一个boolean值 isNew 默认是false(不是新用户)

        8.调用api传入手机号 查找用户

        9.判断用户是否存在

        8.如果不存在就是新用户 重新new一个(因为没查找出来是null 必须在new一个) 设置他的手机

号码 以及密码(密码默认123456 md5加密) 然后保存 返回它的用户id(这里我有点不懂 insert 之后

为什么user 就有id)

        9.将id设置给user isNew=true 表示是个新用户

        10.创建map 存入id和手机号码 使用jwt加密成token

        11.创建map保存数据 将生成的token存入进去 和 isNew 返回给controller层

/*** 验证登录* @param phone* @param code*/public Map loginVerification(String phone, String code) {//1、从redis中获取下发的验证码String redisCode = redisTemplate.opsForValue().get("CHECK_CODE_" + phone);//2、对验证码进行校验(验证码是否存在,是否和输入的验证码一致)if(StringUtils.isEmpty(redisCode) || !redisCode.equals(code)) {//验证码无效throw new RuntimeException();}//3、删除redis中的验证码redisTemplate.delete("CHECK_CODE_" + phone);//4、通过手机号码查询用户User user = userApi.findByMobile(phone);boolean isNew = false;//5、如果用户不存在,创建用户保存到数据库中if(user == null) {user = new User();user.setMobile(phone);user.setPassword(DigestUtils.md5Hex("123456"));Long userId = userApi.save(user);user.setId(userId);isNew = true;}//6、通过JWT生成token(存入id和手机号码)Map tokenMap = new HashMap();tokenMap.put("id",user.getId());tokenMap.put("mobile",phone);String token = JwtUtils.getToken(tokenMap);//7、构造返回值Map retMap = new HashMap();retMap.put("token",token);retMap.put("isNew",isNew);return retMap;}
http://www.yayakq.cn/news/112282/

相关文章:

  • 网站后台什么语宁波seo网络推广公司
  • 网站开发方向学啥网站建设贵
  • 做网站需要哪类商标做怎样的企业网站
  • 怎么注册网站个人项目进度管理软件app
  • 网站标题用空格 逗号影响seo个人网站毕业设计作品
  • 申请中网可信网站阳江房产网春天尚院
  • 网站的后台怎么做调查问卷洛阳霞光科技专业网站制作
  • 网站建设4038gzs做物流的网站有哪些内容
  • 品牌网站建设十小蝌蚪html5做网站导航
  • 带端口的服务器怎么做网站欧米茄女士手表网站
  • 做培训网站哪家好漂亮网站
  • 最好的科技网站建设网站jsp充值和体现系统怎么做
  • 深圳建站推广公司网站关键词怎么做上首页
  • 推广做网站多少钱域名连接到网站吗
  • 兴义网站开发公司软件平台公司
  • 微信网站模块wordpress文档内容页
  • 网站开发提高加载速度网页制作实训总结800字
  • 码云可以做博客网站吗新民电商网站建设价格咨询
  • 百度建站系统公司名查询是否被注册公司
  • 建行网站用户名是什么海外营销公司
  • 建设通网站不良信用信息撤销app推广80元一单
  • vr 全景 网站建设给人做违法网站规避
  • seo点评类网站赣州微和联网络科技有限公司
  • 宣传型企业网站网站宽屏
  • 江阴规划建设局网站微信小程序公司网站怎么制作
  • 营销网站建设选择音乐网站html模板
  • 昆山建设局网站wordpress更新需要ftp
  • 网站建设:成都今网科技中建八局第一建设有限公司税号
  • 网站建设的网络网件路由器app
  • 中国建设银行网站类型分析做图软件ps下载网站