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

河池企业网站开发公司最新网络营销方式有哪些

河池企业网站开发公司,最新网络营销方式有哪些,策划书平台建设部分,安卓手机怎么做网站图片验证码在注册、登录、交易、交互等各类场景中都发挥着巨大作用,能够防止操作者利用机器进行暴力破解、恶意注册、滥用服务、批量化操作和自动发布等行为。 创建一个实体类封装,给前端返回的验证码数据: 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 RedisTemplate<String , 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 Result<ValidateCodeVo> 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:login"+token,JSON.toJSONString(sysUser),7, TimeUnit.DAYS);// 9.返回loginvo对象LoginVo loginVo = new LoginVo();loginVo.setToken(token);return loginVo;}
http://www.zhongyajixie.com/news/5111.html

相关文章:

  • openshift 做网站软文是什么东西
  • 做推送的网站提高基层治理效能
  • wordpress中如何用仪表盘添加视频网站快速排名优化
  • 张家港个人网站制作网站建设企业建站
  • 做网盘网站的成本网络推广外包一年多少钱
  • 网站个别页面做seo东莞网站推广软件
  • 杭州大型网站建设搜索引擎优化叫什么
  • 资阳的网站建设北京搜索引擎推广公司
  • 阿里云轻应用服务器 建设网站太原关键词优化报价
  • 我要做个网站该怎么做志鸿优化网下载
  • 建网站要先建什么西安seo服务外包
  • 环保网站建设开发贺州seo
  • 乐清市网论坛seo首页关键词优化
  • 公司做网站的好处潍坊网站模板建站
  • 搜索引擎网站开发武汉百度信息流广告
  • 360网站托管网站引流推广软件
  • 济南专业做网站公司哪家好百度识图入口
  • wordpress 模板调用网站首页排名seo搜索优化
  • 自己做的网站如何盈利即刻搜索引擎入口
  • 北京 网站建设 公司全球搜索引擎
  • 不会编程怎样建设网站网站怎么推广出去
  • 大理网站建设公司seopc流量排名官网
  • 常州网站建设推广平台搜索引擎公司排名
  • 网站做的和别人一样违法广西seo经理
  • 深圳精品网站建设公司游戏推广员如何推广引流
  • h5″wordpress中山百度seo排名公司
  • wordpress多级tree分类目录南京seo顾问
  • 运输房产网站建设2022新闻大事件摘抄
  • 摄影网站建设流程中视频自媒体账号注册下载
  • 怎样设计网站对seo的理解