nginx配置转发,接口无法获取cookies的问题

前端分离之后通过nginx进行转发到接口,但是接口无法获取到cookies。

这个是因为后端创建的cookie和前端的地址不一致。而浏览器限制了,如果cookies的path与当前页面的地址不一致,会无法生效。

解决方式:在nginx中配置proxy_cookie_path对cookies的path进行修改。

proxy_cookie_path 语法

proxy_cookie_path source target;
  • source 源路径
  • target 目标路径

这个指令是从 1.1.15 版本开始引入的.

可以设置被代理服务器响应中的 Set-Cookie 这个路径属性. 假被设代理服务器返回的 Set-Cookie 头的 path 字段的属性是 path=/two/some/uri/.

那么这个指令 proxy_cookie_path /two/ /; 会将这个属性重写为 path=/some/uri/

此配置可以配置多个,主要看后端返回的path是什么,有哪些。可以通过开发者模式中查看对应接口的cookie页中对应cookie的path

完整配置:

location /api/ {
			proxy_pass  http://192.168.1.1:8081/base/api/;
            proxy_cookie_path /base/api/ /;
            proxy_cookie_path /api/ /;
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值