测试首先获取图片验证码
文章插图
输入正确的验证码和错误的密码,进行登录:
文章插图
如果输入错误的验证码
文章插图
问题使用AirPost测试遇到的问题controller文件中设置了两个api,一个方法往session中加了一个值,另一个方法从sesion中取值,结果两次操作的sessionId不同 。
代码如下所示:
@GetMapping("/verify-code")public void getVerifyCodePng(HttpServletRequest request) {Producer producer = verifyService.getProducer();String text = producer.createText();HttpSession session = request.getSession();session.setAttribute("verify_code", text);session.setAttribute("user", "hresh");log.info("code is " + text + " session id is " + session.getId());}@GetMapping("/code")public String getVerifyCode(HttpServletRequest request) {HttpSession session = request.getSession();String verify_code = (String) session.getAttribute("verify_code");log.info("input code is " + verify_code + " session id is " + session.getId());return verify_code;}
执行结果:input code is 8045 session id is 77EBBF046128BC3618C825F62C0A2099input code is null session id is A69A7D10EAFB0471B5D658489522739D
网上有类似的问题,可以参考这篇文章:blog.csdn.NET/weixin_4164…相关问题还可以看这篇文章:跨域访问sessionid不一致问题
总结上面的例子主要是针对认证功能做一点增强,在实际应用中,其他的登录场景也可以考虑这种方案,例如目前广为流行的手机号码动态登录,就可以使用这种方式认证 。
后续我们还会自定义认证流程中的密码比对,以及授权流程中的权限比对,使之更佳贴近实际应用场景 。
推荐阅读
- 什么是AOP,AOP能做什么?AOP的特点,Spring AOP的实现
- 聊聊 SpringBoot3 的 Micrometer Tracing
- SpringBoot中实现处理API接口敏感数据的脱敏
- 当我准备用SpringEvent优雅的解耦时,连续两个bug把我搞懵了
- 利用敬业签桌面便签软件实现钉钉添加自定义机器人定时提醒群成员
- 完全自定义实现SpringMVC核心组件
- 体验一下正式发布的SpringBoot3.0
- 微信上线超赞新玩法:可以自定义表情包!
- SpringBoot 使用 Feign 无废话 All-in-one 指南
- 二次封装 Spring Data JPA/MongoDB,打造更易用的数据访问层