肝了一夜,撸了一个登录智能人机验证码功能
发布日期:2021-06-29 06:40:09
浏览次数:2
分类:技术文章
本文共 2498 字,大约阅读时间需要 8 分钟。
点击▲关注 “爪哇笔记” 给公众号标星置顶
更多精彩 第一时间直达
前言
群里有小伙伴觉得登录应该加个验证码的功能,撸主说太丑了,不加,于是乎某位群友就压测起来演示环境,还说性能力太差了,其实我也这么觉得,毕竟白嫖的云主机。
验证
传统验证码太丑了,还占空间,污染了妹子图的背景图,显然不符合撸主的审美,这里我们选用智能的人机安全验证,当然,自己撸是不可能的,这辈子都不可能,白嫖腾讯验证的免费次数。
大体验证流程如下:
开撸
前端引入:
前端代码:
请求代码:
window.callback = function(res){ if(res.ret === 0){ login(res) }}function login(res){ //省略登录逻辑}
后端代码:
/** * 登录 */@PostMapping("/login")@ResponseBodypublic Result login(String username, String password,String ticket,String randstr){ try{ if(captchaUtils.check(ticket,randstr)){ Subject subject = ShiroUtils.getSubject(); password = MD5Utils.encrypt(username, password); UsernamePasswordToken token = new UsernamePasswordToken(username, password); subject.login(token); }else{ return Result.error("人机验证失败"); } }catch (Exception e) { e.printStackTrace(); return Result.error("登录失败"); } return Result.ok("登录成功");}
人机验证:
/** * 智能的人机安全验证 * @author 小柒2012 */@Component@Configuration@EnableConfigurationProperties({CaptchaProperties.class})public class CaptchaUtils { private final static Logger LOGGER = LoggerFactory.getLogger(CaptchaUtils.class); private CaptchaProperties captcha; public CaptchaUtils(CaptchaProperties captcha) { this.captcha = captcha; } public Boolean check(String ticket,String randstr) throws Exception { if(captcha.getOpen()){ MapparamsMap= new HashMap<>(); paramsMap.put("aid", captcha.getAid()); paramsMap.put("AppSecretKey", captcha.getAppSecretKey()); paramsMap.put("Ticket", ticket); paramsMap.put("Randstr", randstr); paramsMap.put("UserIP", IPUtils.getIpAddr()); String msg = HttpUtils.get(captcha.getUrl(), paramsMap); /** * response: 1:验证成功,0:验证失败,100:AppSecretKey参数校验错误[required] * evil_level:[0,100],恶意等级[optional] * err_msg:验证错误信息[optional] */ JSONObject json = JSONObject.parseObject(msg); String response = (String) json.get("response"); if("1".equals(response)){ return true; }else{ return false; } }else{ return true; } }}
配置引入:
# 验证码参数(自行替换)qq.captcha.url= https://ssl.captcha.qq.com/ticket/verifyqq.captcha.aid= ***********qq.captcha.AppSecretKey= ***********
演示
小结
尽情的来肆虐妹子图吧,后台回复666获取演示地址以及相关项目源码。
你点的每个在看,我都认真当成了喜欢
转载地址:https://blog.csdn.net/zhulin2012/article/details/108722467 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月22日 10时10分32秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
深度学习中张量(Tensor)的理解
2019-04-29
CNN卷积神经网络简单介绍与详细搭建注释-识别mnist手写黑白数字
2019-04-29
pip相关问题解决(2)-修改源码
2019-04-29
Linux基础命令---显示用户名logname
2019-04-29
SAP CRM系统订单模型的设计与实现
2019-04-29
在编写python代码时,小白最容易犯的十几个错误 ! ...
2019-04-29
为什么存储器会成为阻碍AI发展的难题?
2019-04-29
好程序员分享居中一个float元素
2019-04-29
[雪峰磁针石博客]pyspark工具机器学习(自然语言处理和推荐系统)1数据演进 ...
2019-04-29
xttdriver.pl
2019-04-29
Pyhanlp自然语言处理中的新词识别
2019-04-29
第二十一章:变换(六)
2019-04-29
[New Feature]OSS支持设置Bucket 服务端默认加密方式
2019-04-29
如何使用python分析CPU使用情况? 大概是这样吧
2019-04-29
你如何制定一份可实施的2019年大数据学习计划? ...
2019-04-29
阿里云RPA(机器人流程自动化)干货系列之六:客户端安装及激活 ...
2019-04-29
[设计] 地铁站点主题色的配色
2019-04-29
Android——实现m3u8视频缓存
2019-04-29