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

做网站哪家好公司网站建设 宜宾

做网站哪家好公司,网站建设 宜宾,wordpress支持哪些数据库,专门做行测题的网站图片验证码在注册、登录、交易、交互等各类场景中都发挥着巨大作用#xff0c;能够防止操作者利用机器进行暴力破解、恶意注册、滥用服务、批量化操作和自动发布等行为。 创建一个实体类封装#xff0c;给前端返回的验证码数据#xff1a; Data public class ValidateCodeV…图片验证码在注册、登录、交易、交互等各类场景中都发挥着巨大作用能够防止操作者利用机器进行暴力破解、恶意注册、滥用服务、批量化操作和自动发布等行为。 创建一个实体类封装给前端返回的验证码数据 Data public class ValidateCodeVo {private String codeKey ; // 验证码的keyprivate String codeValue ; // 图片验证码对应的字符串数据}业务层代码实现 public interface ValidateCodeService {// 获取验证码图片public abstract ValidateCodeVo generateValidateCode();}Service public class ValidateCodeServiceImpl implements ValidateCodeService { ​Autowiredprivate RedisTemplateString , String redisTemplate ; ​Overridepublic ValidateCodeVo generateValidateCode() { ​// 使用hutool工具包中的工具类生成图片验证码//参数宽 高 验证码位数 干扰线数量CircleCaptcha circleCaptcha CaptchaUtil.createCircleCaptcha(150, 48, 4, 20);String codeValue circleCaptcha.getCode();String imageBase64 circleCaptcha.getImageBase64(); ​// 生成uuid作为图片验证码的keyString codeKey UUID.randomUUID().toString().replace(-, ); ​// 将验证码存储到Redis中redisTemplate.opsForValue().set(user:login:validatecode: codeKey , codeValue , 5 , TimeUnit.MINUTES); ​// 构建响应结果数据ValidateCodeVo validateCodeVo new ValidateCodeVo() ;validateCodeVo.setCodeKey(codeKey);validateCodeVo.setCodeValue(data:image/png;base64, imageBase64); ​// 返回数据return validateCodeVo;} ​ }在Controller中添加获取验证码接口方法 Autowired private ValidateCodeService validateCodeService;GetMapping(value /generateValidateCode) public ResultValidateCodeVo generateValidateCode() {ValidateCodeVo validateCodeVo validateCodeService.generateValidateCode();return Result.build(validateCodeVo , ResultCodeEnum.SUCCESS) ; }在登录的业务层实现验证码校验 /*** 用户登录* param loginDto* return*/Overridepublic LoginVo login(LoginDto loginDto) {//获取输入的验证码和存储到redis的key名称String captcha loginDto.getCaptcha();String key loginDto.getCodeKey();//根据获取的redis的key 查询redis里面存储的验证码String redisCode redisTemplate.opsForValue().get(user:validate key);// 比较输入的和redis存储验证码是否一致if(StrUtil.isEmpty(redisCode) || !StrUtil.equalsIgnoreCase(redisCode,captcha)){//提示用户校验失败throw new GuiguException(ResultCodeEnum.VALIDATECODE_ERROR);}// 如果一致删除redis里面验证码redisTemplate.delete(user:validate key);// 1.获取提交的用户名String userName loginDto.getUserName();// 2.根据用户名查询用户表SysUser sysUser sysUserMapper.selectUserInfoByUserName(userName);// 3.如果根据用户名查不到对应的信息用户不存在返回错误信息if(sysUser null){//throw new RuntimeException(用户名不存在);throw new GuiguException(ResultCodeEnum.LOGIN_ERROR);}// 4.根据用户名查询用户信息用户存在// 5.获取输入的密码比较输入的密码和数据库的密码是否一致String database_assword sysUser.getPassword();// 把输入的密码进行加密 再比较数据库的密码String input_password DigestUtils.md5DigestAsHex(loginDto.getPassword().getBytes());//比较if(!input_password.equals(database_assword)){ // throw new RuntimeException(密码不正确);throw new GuiguException(ResultCodeEnum.LOGIN_ERROR);}// 6.如果密码一致登陆成功如果你密码不一致登陆失败// 7.登陆成功生产用户的唯一标识tokenString token UUID.randomUUID().toString().replaceAll(-, );// 8.把登陆成功的用户信息放到redis里面// key:token value:用户信息redisTemplate.opsForValue().set(user:logintoken,JSON.toJSONString(sysUser),7, TimeUnit.DAYS);// 9.返回loginvo对象LoginVo loginVo new LoginVo();loginVo.setToken(token);return loginVo;}
http://www.tj-hxxt.cn/news/223608.html

相关文章:

  • 自己做网站步骤四川成都最新消息
  • 网站 二级域名需要备案吗微信小程序代码生成器
  • 上海个人网站建设湖南云网站建设
  • 中国空间站设计在轨飞行多少年无锡所有网站设计制作
  • 飞沐网站建设公司网页版微信登录入口手机
  • 手机网站制作与建设怎么在360上做推广
  • 移动公司需要网络工程专业来宾网站优化
  • 2016年网站设计风格中国十大广告公司排名
  • 金融企业网站整站源码蔚县网站建设公司
  • 嘉兴seo网站建设网站设计步骤图片
  • 维护公司网站建设台州网站建设惠店科技
  • 做校园网站在线建筑设计
  • 石家庄市市政建设工程公司网站南昌优化网站推广
  • 济南做网站找哪家好上海快速网站建设
  • 东莞网络推广网站微信公众号商城开发费用
  • 亚马逊官方网站的建设综合网站系统
  • 网站建设zg886安徽建网站
  • 做网站充值系统php做购物网站怎么样
  • 旅游网网站建设方案廊坊教育云网站建设
  • 网站建设 博贤科技苏州地产网站建设
  • 哪些网站适合推广天津做网站美工
  • 加强心理咨询网站的建设推广计划地域设置的作用描述不正确的是
  • 个人可以做建站网站么百度竞价排名规则及费用
  • 手机网站模板尺寸站长工具特级a免费
  • 做企业网站要用什么软件phpstudy2016快速搭建网站
  • 强化 门户网站建设网站制作的收费
  • 做网站的云服务器选什么网站建设的风险识别
  • 论医院网站的建设网站开发 图片
  • 科技感网站模板茂名模板建站代理
  • 织梦新闻门户网站模板 原创精品怎么才能访问自己做的网站