登录验证码实现

Hutool

有参考文档;很多工具类;把一些功能都封装好;都不用你自己去写;直接调用它的工具类
它这里会详细告诉你引入方式Hutool
在这里插入图片描述

  <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.19</version>
        </dependency>

在这里插入图片描述
实现1:我们不保存在本地;输出字节流给前端;然后在前端显示出来
实现2:保存在static的img里;然后url写在前端的这个部分的图片里;这个图形验证码就有了(但是这里会有个问题;如果是部署云服务器;那我们jar包;没法把文件保存在这里;我们就写系统的目录用来保存)

代码改造

我们可以使用另一种方式;把验证码存在Session;然后我们就可以通过用户Session取这个验证码
注意:拦截器要注意放行
前端:
在这里插入图片描述

后端:
封装的类;返回一个图片文件名;还有验证码的内容;

在这里插入图片描述
注入一下这个类对象:
@Autowired
private CheckCodeTools codeTools;
在这里插入图片描述

配置图片储存路径:(之所以不写在static;是因为如果我们要打包成jar发布到云服务器;那就没法在jar包里写入文件;这个写在配置文件里也方便修改;Windows和Linux文件路径是不同写法)
在这里插入图片描述
注意:一定不能遗漏在application.properties引用一下spring.profiles.active=dev

拦截器开放:
后端的接口;以"/image/“开头的路径,拦截器将不会对其进行处理
.excludePathPatterns(”/user/getcode")
.excludePathPatterns(“/image/**”);

进行一个映射配置;当访问"/image/**“;就会映射到imagePath;就是我们配置到那个路径。addResourceHandlers方法是在WebMvcConfigurerAdapter或WebMvcConfigurer口中的一个方法,用于配置静态资源的处理。file:“前缀表示这是一个本地文件系统路径。+ imagePath表示要处理的静态资源存储路径。
在这里插入图片描述
要使用imagepath注入一下
@Value(”${imgpath}”)
private String imagePath;

这个映射发生在前端的访问image资源;然后就映射到imagePath
在这里插入图片描述

验证码判断:
首先我们在前端获取验证码;然后将内容发给后端;后端我们从Session取到验证码对比一些即可知道真伪(能提高点安全程度;暴力破解的成本就提高了)

这个判断逻辑放最前面去也是没有问题的;因为我们在储存这个验证码的时候;如果登录请求这里还没创建Session;我们就会在那里创建Session;如果有就选中
在这里插入图片描述

在这里插入图片描述
效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

20计科-廖雨旺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值