RuoYi若依系统的验证码如何替换为更美观的EasyCaptcha
先看效果:
使用Kaptcha的验证码
使用EasyCaptcha的验证码图片验证码的作用
图片验证码经常验证如下一些场景。(1)用户登录,防止机器人登录;(2)论坛留言,防止恶意灌水;(3)短信验证码发送,防止盗刷短信。Kaptcha简介
Kaptcha 是一个由谷歌Googel出品的可高度配置的实用验证码生成工具,是一个非常经典的图片验证码解决方案。但,这个开源的工具生成的图片比较素雅,美观度一般,且项目已经基本不维护了,从github上看,最近的一次更新是在3年前。
EasyCaptcha简介
EasyCaptcha是一个Java图形验证码库,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。效果还是非常好看的,还有闪动效果。关键是该开源项目是国人开发,使用也超简单。
EasyCaptcha效果展示(部分验证码闪动,截图无法展示)划重点:若依系统RuoYi-Vue中替换为EasyCaptcha
(1)在ruoyi-frameworkpom.xml 添加依赖: com.github.whvcse easy-captcha 1.6.2
(2)在应用子系统中修改验证码生成的代码,比如ruoyi-admin的CaptchaController中修改getCode方法的代码:/** * 生成验证码 */ @GetMapping("/captchaImage") @ApiOperation(value = "生成验证码", notes = "生成验证码") public AjaxResult getCode(HttpServletResponse response) throws IOException { AjaxResult ajax = AjaxResult.success(); boolean captchaOnOff = configService.selectCaptchaOnOff(); ajax.put("captchaOnOff", captchaOnOff); if (!captchaOnOff) { return ajax; } // 保存验证码信息 String uuid = IdUtils.simpleUUID(); String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; /* 以下注释的部分是原代码 注释开始 String capStr = null, code = null; BufferedImage image = null; // 生成验证码 String captchaType = RuoYiConfig.getCaptchaType(); if ("math".equals(captchaType)) { String capText = captchaProducerMath.createText(); capStr = capText.substring(0, capText.lastIndexOf("@")); code = capText.substring(capText.lastIndexOf("@") + 1); image = captchaProducerMath.createImage(capStr); } else if ("char".equals(captchaType)) { capStr = code = captchaProducer.createText(); image = captchaProducer.createImage(capStr); } redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); // 转换流信息写出 FastByteArrayOutputStream os = new FastByteArrayOutputStream(); try { ImageIO.write(image, "jpg", os); } catch (IOException e) { return AjaxResult.error(e.getMessage()); } ajax.put("uuid", uuid); ajax.put("img", Base64.encode(os.toByteArray())); return ajax; 注释结束*/ //以下6行是新加的代码 Captcha captcha = new ArithmeticCaptcha(115, 42); //创建算术验证码 String code = captcha.text(); //得到算术验证码的计算值 redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);//存入redis ajax.put("uuid", uuid); ajax.put("img", captcha.toBase64()); //获得图片的base64编码 return ajax; }
(3)在前端项目中,RuoYi-Vue3srcviewslogin.vue的getCode方法中修改如下:function getCode() { getCodeImg().then(res => { captchaOnOff.value = res.captchaOnOff === undefined ? true : res.captchaOnOff; if (captchaOnOff.value) { codeUrl.value = res.img; //"data:image/gif;base64," + res.img; loginForm.value.uuid = res.uuid; } }); }
说明:因为上一步中控制器返回的img中已经包含了"data:image/gif;base64,"这一串字符,故前端接收时就不要再加了。
(4)再分别重启前后端系统,就可以看到效果了。
【本文结束】
学习过程记录,有需要的朋友可以参考。欢迎一键三连(点赞、关注、评论)。
聊一款机智的创意设计PC在如今的笔记本领域,创意设计PC很难挣钱。创意设计PC(CreatorPC)是Intel在2019年提出的笔电品类,它由Intel联合全产业链合作伙伴共同打造,旨在解决创意设计人群
RTX40系最快年底进行流片,延续两年一代发布规律在今年的7月底,AMDCEO苏姿丰在财报大会上表示,新一代RDNA3显卡的生产工作目前正在进行之中,如果一切进展顺利,将会在2022年进行公开发售。而另一家显卡巨头英伟达在最近却一
室内空气环境的守护,由欧思嘉光触媒空气洁净器来助力这两年来的国际社会健康问题,让人们意识到免疫力防疫防护的重要性。人体之所以可以抵御疾病以及病毒的侵袭,需要归功于免疫力,一旦免疫力下降就无法抵御病毒,直接表现为身体素质差,总是生病
既然宇宙要反复爆炸重归死寂,那人类的文明再灿烂还有什么意义?谢邀请!原创思想,如果我们的文明是与宇宙相应的,是与宇宙相应着运动性变化性的,那宇宙的反复循环亦是与我们的文明同在的了。无论宇宙将来是怎样的,我们亦是宇宙的其中一分子的,就算宇宙最
苹果或成为OLED屏智能手机出货量最高的公司OLED材料市场规划研究苹果或成为OLED屏智能手机出货量最高的公司2020年,苹果公司将其iPhone12阵容转向全OLED配置,所有四个型号都配备了高品质的新材质屏幕。之前的报告称,尽管iPhone1
智能插座你真的会买?前几天在家突然发现电视路由器电脑的排插因为用了多年积灰很多,看上去老化现象有点严重,似乎有点不安全。所以,就打算更换较为安全且用途更多的智能插座。因此,在买之前也做了一些功课,在这
OPPO智能助理透露ColorOS12将于9月13日发布原生安卓12已经发布许久,各家的定制ROM也正提上日程。今日,数码博主差评帝发现,OPPO手机的智能助理Breeno透露了ColorOS12将于9月13日下午3点发布。据后续消息,
石头智能双刷洗地机U10体验还真有两把刷子8月25日,石头科技带来了年度双旗舰产品石头智能双刷洗地机U10和石头自清洁扫拖机器人G10,其中洗地机U10是石头科技继扫地机器人手持吸尘器之后的全新品类。石头智能双刷洗地机U1
两千以下适合学生党的手机有哪些?八月马上就要过去了,离九月开学还会远吗?相信很多同学马上就要入学了,那么开学新手机怎么挑呢,快来看看这几款吧!第一款红米Note9参考价格1299天玑800U处理器,性能中等,特色
陈根性侵事件接二连三,维权困难是另一道坎文陈根从都美竹到阿里员工,到举报钱枫性侵的小艺,再到更多在互联网被曝光的案件,不论是因为什么,一个不可否认的客观事实是当前,有越来越多的女性,敢于站出来,在众目睽睽之下,将自己遭遇
苹果秋季新品发布会或不止一场,多款新品分批亮相随着9月份临近,意味着苹果秋季新品发布会也越来越近了,而本次发布会最大的看点,无疑就是即将发布的iPhone13系列,本次发布的新机依然有四款机型,命名方式也会延续上代产品。据多方
科大讯飞2021年净利15。56亿同比增长14。13董事长刘庆峰薪酬560万挖贝网4月22日,科大讯飞(002230)近日发布2021年度报告,报告期内公司实现营业收入18,313,605,605。92元,同比增长40。61归属于上市公司股东的净利润1,5
5G工业互联网,升级进行时!近日,工业和信息化部印发的工业互联网专项工作组2022年工作计划提出,打造5G工业互联网升级版,通过加快5G全连接工厂建设培育推广5G工业互联网典型应用等,持续深化网络体系强基。从
因为iPhone不附赠充电头,苹果又被罚款了每人赔70004月21日,据巴西媒体Tecmundo报道,巴西戈亚尼亚市一家法院裁定,苹果公司在iPhone包装盒中没有附赠充电头,违反了消费者保护法,需要赔偿一名iPhone买家5000巴西雷
无线网卡与随身wifi的区别,购买时有什么不同?朋友在问一些关于随身WIFI的问题想买随身WIFI,宿舍用会不会卡笔记本带到学校,宿舍拉宽带不合适,想买随身WIFI不太会选学生外地上学,换卡办宽带麻烦,想买随身WIFI求推荐因为
互联网反垄断规范与发展并重垄断是市场大敌,如果任由其发展,不仅会使市场经济缺乏活力,还会造成结构性贫富差距。使社会出现不满情绪。所以对于出现任何垄断行为,我们都要高度重视,一视同仁,进行处理。现在和过去不同
首个可利用集群策略协同工作分子机器人开发完成科技日报北京4月20日电(实习记者张佳欣)日本北海道大学理学院科学家成功开发出世界上第一个利用集群策略工作的微型机器人,首次证明分子机器人能够通过采用集群策略完成货物递送,运输效率
滴滴出行存在严重违规,今后你还会用它吗?7月4日,网信办公告称,滴滴出行app在核实举报后,存在违规收集和使用个人信息的严重问题,因此国家互联网信息办公室按规定通报appstore,下架滴滴出行。虽然这份公告字数不多,但
互联网智能交通发展战略研究一前言我国交通发展由单纯追求速度规模转向更加注重质量效益,这是交通现代化发展的新需求。交通格局将由各种交通方式相对独立发展向更加注重多方协同发展转变,由依靠传统要素驱动向更加注重创
刘晨灯塔工厂助力制造业数字化转型中新经纬4月21日电题灯塔工厂助力制造业数字化转型作者刘晨中国银行研究院博士后2018年,为了遴选数字化制造和全球化4。0的示范者,世界经济论坛和麦肯锡咨询公司发起评选灯塔工厂(L
了解Kubernetes资源类型在深入研究Kubernetes资源之前,让我们先澄清一下资源一词在这里指的是什么。我们在Kubernetes集群中创建的任何东西都被视为一种资源部署pod服务等。在本文中,我们将重
亚马逊云科技赋能知行志成共推西南地区企业数字化转型在前线消息北京2022年4月21日,亚马逊云科技助力四川知行志成科技有限公司(以下简称知行志成)从零成长为亚马逊云科技西南地区重要合作伙伴网络成员。自双方合作以来,知行志成已服务涵