前后端分离中session问题

起因
在公司业务中,使用的前后端分离开发。但是因为是第一次用,在做AOP日志记录的时候,发现当用户登录的时候把用户信息存在session中,在AOP方法中获取的session。但是这两个session的sessionId并不相同,即每次的session都是新的。所以思考了一下前后端分离的Session问题。
jsp中的session为什么每次都是一样的
在jsp中,当访问系统的时候,都会在cookie中存一个值(如下图所示)。当每次发送请求的时候,都会携带这个sessionId,因为这个id值是相同的,所以可以保证这次回话中的session之后一个。

如何解决
因为在登录之后,会在cookie中存入一个token,可以通过这个token查询到用户信息,所以每次请求的时候都把这个token放在request header中携带过去,需要用的时候对这个token进行解析,这个时候都获取到用户信息。
代码
// 创建axios实例
const service = axios.create({
  baseURL: process.env.BASE_API, // apibase_url
  timeout: 15000 // 请求超时时间
})

// request拦截器
service.interceptors.request.use(config => {
  var token = getToken()
  if (token) {
  <!--设置请求头部信息-->
    config.headers['Authorization'] = token
  }
  return config
}, error => {
  // Do something with request error
  Promise.reject(error)
})
 HttpServletRequest request =((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        String username=null;
        String authorization = request.getHeader("Authorization");
        OperateRecord operateRecord=new OperateRecord();
        User userInfo = userService.getUserInfo(authorization);

这样就可以解决问题了......

猜你喜欢

转载自blog.csdn.net/qq_25484147/article/details/80639181