1.首先了解一下Token
1、token也称作令牌,由uid+time+sign[+固定参数]组成:
- uid: 用户唯一身份标识
- time: 当前时间的时间戳
- sign: 签名, 使用 hash/encrypt 压缩成定长的十六进制字符串,以防止第三方恶意拼接
- 固定参数(可选): 将一些常用的固定参数加入到 token 中是为了避免重复查数据库
2.token 验证的机制(流程)
- 用户登录校验,校验成功后就返回Token给客户端。
- 客户端收到数据后保存在客户端
- 客户端每次访问API是携带Token到服务器端。
- 服务器端采用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

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

594

被折叠的 条评论
为什么被折叠?



