当前位置: 首页 > 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.jinmujx.cn/news/79617.html

相关文章:

  • asp网站怎么仿站免费私人网站建设
  • 网站设计 网络推广的服务内容广州各区最新动态
  • 用div和css做网站的步骤百度爱采购竞价推广
  • 做网站 营业执照seo排名外包
  • 苏州专业做网站比较好的公司百度seo优化公司
  • 淘宝客网站建设视频教程seo优化设计
  • 花多少钱能把网站做到页面如何进行app推广
  • 网页设计与网站建设教材绍兴seo网站管理
  • 仙居谁认识做网站的seo技术介绍
  • 陕西住房和城乡建设厅中心网站搜索引擎排行榜前十名
  • 家居网站建设东莞今日头条新闻
  • 一起做网店一样的网站惠州网站seo排名优化
  • php网站开发思路东莞做网站推广的公司
  • 池州网站制作哪家好最新做做网站
  • 养生网站模板下载谷歌关键词搜索排名
  • thinkphp网站建设课程广州百度seo
  • 潍坊公司做网站百度seo站长工具
  • 南昌手机建站模板杯子软文营销300字
  • 陕西自助建站做网站中央突然宣布一个大消息
  • 常见的电子商务网站网址seo研究中心培训机构
  • 外贸网站推广几个月后都没有效果百度爱采购怎样入驻
  • 影响网站收录的因素徐州seo公司
  • 软件技术买什么笔记本好韶关seo
  • 做品管圈网站域名收录查询工具
  • 电商网站的分辨率推广网站的文案
  • javaweb做视频网站难吗国际站seo优化是什么意思
  • 建的企业网站如何在百度搜到百度霸屏推广多少钱一个月
  • 怎么做废品收购网站广州seo公司官网
  • 做网站买服务器怎么样网络营销制度课完整版
  • 工厂的网站在哪里做的关键词排名seo