这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战
一 、为啥要使用验证码
验证码(CAPTCHA) 是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。今天给大家介绍一下kaptcha的和springboot一起使用的简单例子,kaptcha是谷歌的开源的工具类,本文使用的是第三方封装的jar包,由于是前后端分离项目,不能将验证码存在session作用域中,同时也是考虑到安全和跨域的问题,本文还需将验证码存在数据库中用于登录的时候的校验。
二、使用
- 引用maven坐标依赖
1 | pom复制代码 <dependency> |
2.验证码数据库表实现
1 | sql复制代码CREATE TABLE `sys_captcha` ( |
3.生成和校验代码的核心代码
service层
1 | java复制代码 // 将验证码生成的bean注入进来 |
Controller层
1 | java复制代码 /** |
具体的代码可以参考:
==github.com/Dr-Water/ra…
- 前端每次请求新的验证码的时候都会带一个uuid,每次的uuid都不一样
- 后端使用这个uuid作为这个验证码的唯一标识生成一个验证码保存在数据库中,并将验证码图片返回给前端
- 前端进行登录认证的再次将生成验证码的uuid传到后端,后端根据这个uuid去查询数据库,并校验验证码是否正确
三、一些优秀的参考链接
www.jianshu.com/p/a3525990c…
Javaweb—谷歌kaptcha图片验证码的使用
springboot整合kaptcha验证码
本文转载自: 掘金