开发环境localhost怎么解决 cookie 认证问题?

新手上路,请多包涵

问题描述:在登录之后,我怎么在 localhost 中获取登录页面(登录页面地址为 39.xxx)的 cookie 呢?

目前我所了解到的方法

  1. 利用NGINX 进行反向代理
  2. 利用 webpack 中的 proxy—pass代理

上面两种都是进行了反向代理, cookie 只允许同一域名读取,但是这么操作后,它们是否就同源呢(domain 是否相同)?目前我测试出并不相同,并没有正确读取到 cookie。请各位指点。

阅读 5.8k
5 个回答

如果登陆页面地址主域名和当前页面不同的话,怎么样都拿不到 cookie, 题主放弃吧

开发环境下,webpack的代理是一个比较好的解决方案

nginx的话,应该可以做到的,domianpath均保持一致,就可以共用cookie的,是不是哪里配错了

直接使用 webpack-dev-server 的代理,cookie 会被自动转写,可以被正常传递。如果因为 sameSite 的原因导致 cookie 失效,可以这样改写一下:

config.devServer = {
  proxy: {
    '/': {
      onProxyRes(proxyRes) {
        const key = 'set-cookie';
        if (proxyRes.headers[key]) {
          const cookies = proxyRes.headers[key].join('').split(' ');
          proxyRes.headers[key] = [cookies[0], 'Path=/'].join(' ');
        }
      },
    }
  },
};
新手上路,请多包涵

如果登陆页面地址主域名和当前页面不同的话,怎么样都拿不到 cookie

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题