美文网首页
添加cookie时,设置path属性,safari浏览器产生的兼

添加cookie时,设置path属性,safari浏览器产生的兼

作者: 木头就是我呀 | 来源:发表于2019-11-15 17:39 被阅读0次

情况如下:
同一个域名www.XXX.com下面有三个前端项目
路径分别为
www.XXX.com/demo1
www.XXX.com/demo2
www.XXX.com/demo3

此时,每个单独的项目有其单独的cookie来存储对应的数据(互不干扰)


image.png

项目中的人员前期使用以下方法来设置cookie的path

import cookie from 'js-cookie'

const getCookiePath = () => {
  const {origin, pathname} = location
  return origin + pathname + (pathname === '/' ? 'store' : '')
}

let path = this.getCookiePath()
cookie.set('token', state.token, {path})

这样,产生的cookie字符串为

token=XXX;path=www.XXX.com/demo3

(注意,path后面跟的是全路径)
以上cookie字符串放入 document.cookie 中
在chrome中是可以的 没有问题 好像是chrome自动把域名和项目名给拆分了
但是在safari浏览器中就存不上
导致在safari登录时获取的token无法放入cookie,导致登录失败

解决方案

cookie的path属性不应该按以上方法写
应该按如下方式

import cookie from 'js-cookie'

cookie.set('token', state.token, {path:'/demo1'})

假如是demo1,cookie字符串应该是

token=XXX;path=/demo1

即可
经测试,该方式达到的效果和最初项目人员使用的方法一致,且可以再safari浏览器中使用。

相关文章

网友评论

      本文标题:添加cookie时,设置path属性,safari浏览器产生的兼

      本文链接:https://www.haomeiwen.com/subject/ztmsictx.html