SpringBoot和vue3实现登录退出【用jwt redis 拦截器..】

文章目录

    • 概要
    • 整体流程
    • 注意事项
      • 一、拦截路径
      • 二、token
      • 三、注册防止用户从夫提交

概要

结合Spring Boot和Vue3实现安全的用户登录退出功能,并使用拦截器、JWT和Redis缓存来提高系统的安全性和性能。

整体流程

注意事项

一、拦截路径

像登录页面的路径就不要拦截了,否则都不能登录了

例如:

java 复制代码
@Configuration
public class WebMvcConfiguration extends WebMvcConfigurationSupport {

    @Autowired
    private JwtTokenapiInterceptor jwtTokenapiInterceptor;

    /**
     * 注册自定义拦截器
     */
    protected void addInterceptors(InterceptorRegistry registry) {
        // 添加拦截器  
        // 添加拦截路径  排除拦截路径
        registry.addInterceptor(jwtTokenapiInterceptor)
                .addPathPatterns("/api/**")
                .excludePathPatterns("/api/employee/login");
    }
}

需要提前定义好拦截器,并加入容器(用@Component注解)

二、token

  1. 用户登录验证密码等通过后,生成token,token中放入用户id,并存入redis(将token存储到redis中,便于管理Token的状态和生命周期)。
  2. 下次请求拦截器先拦截,解析token中的用户id,然后从redis里面读取token验证,验证用户合法性。
  3. 退出登录,前端发一个请求给后端,删除redis中的token。

注意:

  • 不要将敏感信息(如密码)放在Token中。
  • 妥善保管用于生成和验证token的密钥。

三、注册防止用户从夫提交

我自己写了一个小demo,邮箱注册登录。

发送验证码,可能不小心点了两下等重复提交操作。解决方法:用redis

其他方法:
记录发送时间戳:后端可以记录每个用户发送验证码的时间戳。如果用户在短时间内发送多次验证码请求,后端可以检查最新的请求时间戳与上次请求时间戳的间隔,如果间隔时间太短,就拒绝处理额外的请求
前端限制:在前端实现点击发送验证码按钮后,禁用按钮一段时间,防止用户连续点击发送。可以在发送验证码后,将按钮禁用一段时间,以防止用户误操作多次点击发送。

相关推荐
IT_陈寒4 分钟前
SpringBoot项目启动慢?5个技巧让你的应用秒级响应!
前端·人工智能·后端
树上有只程序猿38 分钟前
2026低代码选型指南,主流低代码开发平台排名出炉
前端·后端
高端章鱼哥1 小时前
为什么说用OpenClaw对打工人来说“不划算”
前端·后端
大脸怪1 小时前
告别 F12!前端开发者必备:一键管理 localStorage / Cookie / SessionStorage 神器
前端·后端·浏览器
用户8356290780511 小时前
使用 C# 在 Excel 中创建数据透视表
后端·python
架构师沉默1 小时前
别又牛逼了!AI 写 Java 代码真的行吗?
java·后端·架构
zone77392 小时前
006:RAG 入门-面试官问你,RAG 为什么要切块?
后端·算法·面试
狗头大军之江苏分军2 小时前
消耗 760万 Token 后,一文看懂了“小龙虾” OpenClaw 和 OpenCode 的区别
前端·后端
前端小张同学3 小时前
一次支付回调引发的「血案」:我是如何用 Redis + AOP 实现接口幂等的
后端
小飞Coding3 小时前
Spring Boot 中关于 Bean 加载、实例化、初始化全生命周期的扩展点
spring boot