跨域session(cookie)失效问题解决 思路篇

您所在的位置:网站首页 解决cookie失效 跨域session(cookie)失效问题解决 思路篇

跨域session(cookie)失效问题解决 思路篇

2023-03-15 22:36| 来源: 网络整理| 查看: 265

一 应用场景

直接点,我的应用场景是,前后端分离开发。为啥要分离?因为不爱了呗~

由于目前做的大多数是b/s应用程序,身份验证更多还是使用session机制。所以跨域的session保持成了非常大的问题。

二 session机制

都知道http是无状态的,无状态是啥意思?就是每次请求都相当于一次完全新的请求呗,不会携带历史上的任何留存记录。那服务器怎么识别请求者的身份呢?

session是其中一种解决方案,在我看来其他的也都类似。简单来说,当服务器通过客户端的身份验证,会在对客户端的响应头中写入"set-cookie"字段,对于服务器而言,这个字段相当于一个id,服务器依靠这个字段去获取客户端曾经留存在服务器上的记录。所以,客户端每次访问,携带此字段就可保持其身份。

客户端接收到此响应后,会将“set-cookie”后对应的值进行保存,这个值,就是cookie。在之后发起的每次请求中,浏览器都会将此值夹带于请求头中,以便服务器用来确定请求者身份的证明。

看似一切都很美好,但当进行跨域请求时,浏览器不会为发起的请求设置cookie。因而服务器无法定位到通过身份校验时的session,也就是无法识别请求发起者的身份。

三 解决思路

说到此其实解决思路也就很清晰了,浏览器不做的事情,我去帮他做。既然跨域请求中浏览器不保存和设置cookie;那我们就制作一个代理服务器,专门接受跨域请求,之后将请求转发至目标服务器。 说起来也有些向反向代理。不一样的是,在转发请求时,需要为请求附上指定的cookie。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3