vue 前后端分离 session丢失,前端解决办法

背景:前端每次发送的ajax都是形成新的会话,本地测试时后端获取sessionId为null
**********后端的代码修改请查找其他文章,本文只涉及前端
一、解决前端每次发送的ajax都是形成新的会话
我是用的axios,只需在封装的请求时添加

axios.defaults.withCredentials=true;

根据自己代码做相应改变就行,请求时添加withCredentials属性,并且值为true。
withCredentials:true;请求时携带cookie
二、本地测试时结果发现还是无法成功,后端获取的sessionId为null。
后端返回cookie

Set-Cookie: SESSION=NzgyMDdjZDgtNjJhMC00NmNkLTkxNWYtNjE4ZmRkYmFlOWQy; Path=/xxx/;

cookie后面还有一个path=/xxx/ 即后端项目路径,
只需要在为解决跨域设置代理时
原代码:

devServer: {
    proxy: {
      '/dev-api/': {
        target: 'http://baidu.com:8811',
        changOrigin: true,
        pathRewrite: {
          '^/dev-api/': '/'
        }
      }
    }
  }

以/dev-api/开头改为后端返回path开头
修改后:

devServer: {
    proxy: {
      '/xxx/': {
        target: 'http://baidu.com:8811',
        changOrigin: true,
        pathRewrite: {
          '^/xxx/': '/'
        }
      }
    }
  }
Vue前后端分离的开发模式下,如何处理Session问题是一个常见的需求。由于前后端分离的特点,前端与后端之间的通信是通过API接口进行的,因此在处理Session时需要考虑如何保持用户的登录状态。 一种常见的方式是使用Token来管理Session。当用户成功登录后,后端会生成一个Token,并将其返回给前端前端在后续的请求中需要将该Token携带在请求的Header中,以便后端进行鉴权。后端在接收到请求时,会验证Token的有效性,如果验证通过,则继续处理请求,否则返回错误信息。 在前端中,可以使用localStorage或者cookie来保存Token。当用户访问页面时,前端可以先尝试从localStorage或cookie中获取Token,并将其添加到请求的Header中,以保证用户的登录状态。当用户退出登录时,前端需要删除保存的Token,以确保下次访问时用户需要重新登录。 当然,为了增强安全性,可以在Token中加入一些额外的信息,如过期时间、权限等,以确保用户的身份和授权信息的有效性。 此外,还可以使用JWT(JSON Web Token)来管理Session。JWT是一种基于JSON的开放标准,可以用于在某些信任的环境中安全地传输信息。JWT由头部、载荷和签名三部分组成,其中载荷部分可以储存用户的数据,例如用户ID、用户名等。通过对头部和载荷进行签名,可以保证JWT的完整性和可信度。 总而言之,Vue前后端分离Session管理可以通过Token或JWT来实现。这样可以实现用户的登录状态的保持,并且提供一定的安全性保障。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值