栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

vue webpack重写cookie路径的方法

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vue webpack重写cookie路径的方法

cookie详解

cookie在远程浏览器端存储数据并以此跟踪和识别用户的机制。从实现上说,cookie是存储在客户端上的一小段数据,浏览器(即客户端)通过HTTP协议和服务器端进行cookie交互。

Cooke独立于语言存在,严格地说,cookie并不是由PHP、Java等语言实现的,而是由这些语言对cookie进行间接操作,即发送HTTP指令,浏览器收到指令便操作cookie并返回给服务器。因此,cookie是由浏览器实现和管理的。举例说,PHP并没有真正设置过cookie,只是发出指令让浏览器来做这件事。PHP中可以使用setcookie() 或 setrawcookie() 函数设置cookie。setcookie()最后一个参数HttpOnly设置了后,Javascript就无法读取到这个cookie。

设置cookie时需注意:①函数有返回值,false失败,true成功,成功仅供参考,不代表客户端一定能接收到;②PHP设置的cookie不能立即生效,要等下一个页面才能看到(cookie从服务器传给浏览器,下个页面浏览器才能把设置的cookie传回给服务器);如果是Javascript设置的,是立即生效的;③cookie没有显示的删除函数,可以设置expire过期时间,自动触发浏览器的删除机制。

cookie是HTTP头的一部分,即现发送或请求cookie,才是data域;setcookie()等函数必须在数据之前调用,这和header() 函数是相同的。不过也可以使用输出缓冲函数延迟脚本的输出,知道设置好所有cookie和其他HTTP标头。

cookie通常用来存储一些不是很敏感的信息,或者进行登录控制,也可用来记住用户名、记住免密码登录、防止刷票等。每个域名下允许的cookie是有限制的,根据浏览器这个限制也不同。cookie不是越多越好,它会增加宽带,增加流量消耗,所以不要滥用cookie;不要把cookie当作客户端的存储器来用。一个域名的每个cookie限制以4千字节(KB)键值对的形式存储。

还有一种cookie是Flash创建的,成为Flash Shard Object,又称Flash cookie,即使清空浏览器所有隐私数据,这类顽固的cookie还会存在硬盘上,因为它只受Flash管理,很多网站采用这种技术识别用户。

cookie跨域,主要是为了统一应用平台,实现单点登录;需使用P3P协议(Platform for Privacy Preferences),通过P3P使用户自己可以指定浏览器的隐私策略,达到存储第三方cookie的目的,只需要在响应用户请求时,在HTTP的头信息中增加关于P3P的配置信息就可以了。cookie跨域涉及两个不同的应用,习惯上称为第一方和第三方。第三方通常是来自别人的广告、或Iframe别的网站的URL,这些第三方网站可能使用的cookie。

好,重点给大家介绍vue webpack重写cookie路径的方法,具体内容如下所示:

webpack提供的反向代理服务器在开发阶段非常方便,几行简单的代码配置就可以使用反向代理功能,包括路径重写、cookie处理等。

项目开发阶段使用的API路径是 /admin ,部署到线上是 / ,所以在开发过程中需要在 proxyTable 进行反向代理配置,将路径重写掉,路径重写代码如下( config/index.js ):

proxyTable: {
  '/admin': {
  target: 'http://127.0.0.1:8080',
  changeOrigin: true,
  pathRewrite: {
   '^/admin': '/admin2'
  },
  }
}

启动项目之后进行登录,此时API请求成功,但是获取登录用户信息时发现cookie没有带过去。查看请求发现登录请求的 Set-cookie 响应头中的 Path 是 /admin2 。但是咱们请求的路径是 /admin ,cookie当然不会生效。

查阅文档发现,proxyTable支持 onProxyRes 回调函数来自定义响应,流程是通过替换后端服务器设置的 cookie-path 来进行处理,代码如下:

proxyTable: {
  '/admin': {
  target: 'http://127.0.0.1:8080',
  changeOrigin: true,
  pathRewrite: {
   '^/admin': '/lesson/admin'
  },
  onProxyRes: function (proxyRes, req, res){
   const cookies = proxyRes.headers['set-cookie']
   if (cookies) {
   const newcookies = cookies.map(cookie=> {
    return cookie.replace(/Path=/admin2/, 'Path=/')
   })
   delete proxyRes.headers['set-cookie']
   proxyRes.headers['set-cookie'] = newcookies
   }
 }
 },
},

重启webpack之后重新登录,发现cookie的路径已经被重写到 / 了。

总结

以上所述是小编给大家介绍的vue webpack重写cookie路径的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/74794.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号