Vue每次请求sessionId都不一样

当使用Vue2前端和JavaWeb后端开发时,遇到登录成功后SessionID未保存到cookie的情况,可能是由于axios配置、跨域问题或分布式服务所引起的。确保axios设置withCredentials为true处理跨域请求时保持cookie,通过nginx配置代理以避免cookie问题,并在分布式环境中考虑使用token代替SessionID进行身份验证。
摘要由CSDN通过智能技术生成

前端是vue2,使用webpack,后端使用java web

  • 开发环境出现登录接口可以访问,但是登录成功后发现SessionID没有保存到cookie中,导致第二次请求的时候,依旧显示没有权限
  • 首先考虑本地代码问题,例如有没有做特殊的封装
  • 如果前端使用了axios,需要在初始化的时候这样设置:
    axios.interceptor.withCredentials=true
  • 其次,考虑跨域问题,跨域问题我使用nginx做代理解决
  • 在使用nginx做代理的时候需要对其进行设置,因为nginx可能在代理的时候改变其cookie,设置类似如下:
location /xxxService 
	proxy_pass http://xxxxx: 
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header Host $host;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header X-Nginx-Proxy true;
	proxy_cookie_path /"/; HTTPOnly; Secure"; 
	proxy_set_header Cookie $http_cookie; 
}
  • 最后,如果是分布式服务,需要考虑改用token
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值