在分布式下,session是无法共享的,这时,就出来了一个新生物token,在SpringBoot或者SpringCloud的拦截器下,我们就可以进行获取到用户的操作的session(token)了,通过判断token的有效性,从而来进行指定的操作处理,实现对项目数据的保护。
token生成以及保存方式可以参考之前写的文章https://blog.csdn.net/qq_43757153/article/details/93527502
token生成后,我们每次操作就需要进行获取到token了,对于获取token去redis中进行校验的话,需要在拦截器中进行处理,下面我写了一个简单的实例来进行获取token,对于去redis中进行校验token的有效性的话可以参考本人的博客,在介绍redis的使用中有提到。
对于在SpringBoot和SpringCloud中进行设置拦截器的话,可以参考SpringBot中拦截器的使用和springCloud中zull网关的使用这两篇文章进行配置使用。
下面附上对获取前台传递过来的token(session)的部分代码
public boolean getToken(HttpServletRequest request, HttpServletResponse response,) throws Exception {
String session = request.getSession().toString();/*获取session信息*/
String token = request.getHeader("token"); /*获取token信息*/
if(token != null && !token.equals("")){
return true; /*允许请求通过*/
}
return false; /*不允许通过*/
}
这里是在SpringBoot的拦截器中的部分代码,如有不对地方,欢迎批评指正!