基于springboot使用reids和token实现后端拦截
场景:最近开发一个简单项目,实现了一些后台的接口,为了服务器和资源的安全,进行拦截。由于此项目的角色只有一个超级管理员,所以也未进行基于角色拦截或基于资源拦截。
说明:前后端使用token作为用户是否登录的标志,前端调用接口时将token放入请求头,后端获取请求头的token验证是否用户登录,从而放行,本质上是根据设置响应对象的是否授权的状态。401 Unauthorized 无权限访问。
逻辑:后端放行登录接口,前端通过登录接口进行登录,登录验证成功后返回一个token信息给前端并以token为键存入redis,前端接受token并缓存,前端访问需要权限的接口时请求头上带上token,后端在redis中获取以token键的值,判断是否为空,从而验证是否登录而是否放行访问接口。
依赖
<!--整合redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
拦截器
package xxx.interceptor;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpStatus;
import org.springframework.