✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
🎯 你正在阅读「Java项目-企悦抽」系列文章 🎯
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
🔥 弹简特 个人主页
❄️ 个人专栏直通车:
- 🔌 接口测试从入门到跑路
- ☕ 一个后端的 JavaEE 续命指南
- 🛜 网络原理续命手册
- ☕ Java项目-轻聊
✨ 靠热爱去书写自己,靠勇敢去书写生活!
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
🌟 博主简介:

文章目录:
- 一、前言
- 二、两种登录方式的测试
-
- 1、测试密码登录-使用Postman
- 2、测试验证码登录-使用Postman
-
- [2.1 先获取验证码](#2.1 先获取验证码)
- [2.2 再根据验证码输入我们的登录信息](#2.2 再根据验证码输入我们的登录信息)
- 3、测试反例
- 三、前端登录的实现
- 四、登录拦截器
一、前言
兄弟们,上一期咱们把登录模块核心功能做完了,账号密码、验证码登录还有鉴权逻辑全部通了。但登录模块还差两块内容:和前端的对接方案,以及后端全局登录拦截器。只有写好拦截器,后端才会自动校验访问接口的用户是否登录。
二、两种登录方式的测试
1、测试密码登录-使用Postman

后端日志

2、测试验证码登录-使用Postman
2.1 先获取验证码



这里需要注意,这个手机号是个假的,我们的验证码平台,发送不了验证码,但是我们会把它存在redis中,有时间内,我们尽快的把这个验证码给查询出来复制给前端传到后端去验证。

2.2 再根据验证码输入我们的登录信息



3、测试反例


三、前端登录的实现
对于前端的话,我只用截图做一些解释。




先从后端获取验证码


测试一下
我们先来测试密码登录的效果

登录成功,就来到了首页

那么接下来就测试验证码登录
手机获取验证码失败了,因为你传递的手机号是空的。

然后这大概率就是我们的参数不对应,修改一下就行


重新验证:

登录成功来到首页:

四、登录拦截器
回顾一下我们之前的登录方式JWT登录。

我们现在只是将前两部分完成的,就是登录成功,然后后端返回jwt。
但是由于你没有让后续的所有请求都自动带上这个jwt,后端就没有一个验证的标准。
也就是说我明明给你发了一个身份证,但是你没有带上身份证去做其他的事情,我就不知道这个人是你。
虽然我们已经完成了登录,但是你访问其他页面,如果你管理员把首页的地址发给其他人,其他人还是能够访问这个页面。而且能够获得的数据,理应来说,我们这个是管理员的权限,不应该让普通用户也能够访问,那此时解决办法就是:你每个人访问的时候都要把身份证带上,我看这个身份证是不是你当前登录的那个人。
也就是说我们后续的每一个请求都把这个鉴权码jwt令牌(token)带上,带上之后,我们给后端安一个保安,这个保安就是拦截器,然后他的职责就是把你给拦住。然后要查你的身份证,如果你的身份证是我发给你的,且是当前用户登录的那个人,我就允许你通过,否则的话我就要你跳到登录页面去,先给我去登,再者拦截器里面我们还可以告诉他哪些请求需要放行,哪些请求需要拦截。
接下来我们就完成这个拦截器,我们的思路很简单,加一个拦截器,拦截非登录页面,对它进行身份校验,看你的令牌里面也没有登录信息,如果有的话就放行,如果没有就拦截,返回401。此时前端看到这个401就会给你跳转到登录页面。


拦截器里面有很多的方法,这些方法是谁定义的?是我们的框架定义的,所以首先得实现一个handlerinterceptor接口,我们再去实现它接口里面的需要的方法。
实现拦截就有两个步骤,第1个是先定义保安,第2个是注册保安
具体可以参考博客:拦截器
定义保安:告诉保安,你这个保安可以干什么?
后端拦截你,然后要看身份证,身份证就是jwt令牌,jwt令牌就是token,jwt令牌存在请求头中,所以第1步先获取请求头。


第2步去解析我们的token(JWT令牌)

接下来就是注册保安:你找到保安之后签合同让他上岗,比如一个保安和学校合作,那这个学校好比就是我们当前的抽奖系统。给他签合同,让他上岗,并告诉他你需要拦截哪些东西,不需要拦截哪些东西。好比就是你学校找到保安了,然后签合同,并告诉保安你站在门口拦截哪些车,放行哪些车。


首先让他去实现web MVC configure,里面有一件写好的一些接口,就是说你可以配置哪些东西,一定要给你规定好了,具体怎么去配置,你去实现那些方法即可。


测试一下:重启服务器,直接访问其他页面,看能否访问?


OK,至此我们的登录功能就实现完成了,后续咱们就开始去实现其他模块了,老铁们如果本篇内容对你有帮助,不妨点赞收藏,也欢迎在评论区留言交流,你的每一份支持都是我持续创作的最大动力~👋