Springboot token令牌验证解决方案 在SpringBoot实现基于Token的用户身份验证

本文介绍了如何在SpringBoot中实现基于Token的用户身份验证。讲解了Token的组成和验证机制,并详细阐述了利用SpringBoot搭建Token验证的过程,包括引入依赖、创建拦截器、定义注解、服务器下发Token以及测试验证。提供了一个DEMO测试版本链接供参考。

1.首先了解一下Token


1、token也称作令牌,由uid+time+sign[+固定参数]组成:

  • uid: 用户唯一身份标识
  • time: 当前时间的时间戳
  • sign: 签名, 使用 hash/encrypt 压缩成定长的十六进制字符串,以防止第三方恶意拼接
  • 固定参数(可选): 将一些常用的固定参数加入到 token 中是为了避免重复查数据库

 

2.token 验证的机制(流程)

  1. 用户登录校验,校验成功后就返回Token给客户端。
  2. 客户端收到数据后保存在客户端
  3. 客户端每次访问API是携带Token到服务器端。
  4. 服务器端采用filter过滤器校验。校验成功则返回请求数据,校验失败则返回错误码

3.使用SpringBoot搭建基于token验证

 

3.1 引入 POM 依赖
        <dependency>
              <groupId>com.auth0</groupId>
              <artifactId>java-jwt</artifactId>
              <version>3.4.0</version>
        </dependency>
3.2  新建一个拦截器配置 用于拦截前端请求 实现   WebMvcConfigurer 
 1 /***
 2  * 新建Token拦截器
 3 * @Title: InterceptorConfig.java 
 4 * @author MRC
 5 * @date 2019年5月27日 下午5:33:28 
 6 * @version V1.0
 7  */
 8 @Configuration
 9 public class InterceptorConfig implements WebMvcConfigurer {
10     @Override
11     public void addInterceptors(InterceptorRegistry registry) {
12         registry.addInterceptor(authenticationInterceptor())
13                 .addPathPatterns("/**");    // 拦截所有请求,通过判断是否有 @LoginRequired 注解 决定是否需要登录
14     }
15     @Bean
16     public AuthenticationInterceptor authenticationInterceptor() {
17         return new AuthenticationInterceptor();// 自己写的拦截器
18     }
    
    //省略其他重写方法
19 20 }
3.3 新建一个 AuthenticationInterceptor  实现HandlerInterceptor接口  实现拦截还是放通的逻辑
 1 public class AuthenticationInterceptor implements HandlerInterceptor {
 2     @Autowired
 3     UserService userService;
 4     @Override
 5     public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object object) t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值