如何正确配置Browsersync以代理后端

时间:2017-05-30 10:10:06

标签: node.js npm proxy csrf browser-sync

我正在努力正确配置Browsercync(可能还有一些中间件?)。

我的配置如下:

local.example.com通过/etc/hosts配置我的本地地址。

devel.example.com这是我们公司发展的环境(后端)。

staging.example.com这是我们公司的临时环境(后端)。

作为我的UI开发人员,我想使用我的本地代码,但是可以使用其中一个后端环境。

我正在使用gulp来构建我的项目等。它还有运行browser-sync并观察文件更改的任务。但是,当然现在有来自后端的cookie域存在问题。 CSRF令牌cookie域由浏览器设置为当前使用的后端。

我试过了:

  1. 使用配置中间件http-proxy-middleware

    server: {
      baseDir: './build',
      middleware: [
        proxyMiddleware('/api', {
          target: 'http://devel.example.com',
          changeOrigin: true,
        })
      ]
    ]
    

    但我遇到的问题是它正在进行非透明重定向,这在浏览器控制台中是可见的。我认为它会像这样工作,代理会屏蔽那些对浏览器的请求会认为所有请求和响应都来自local.example.com。但它似乎并没有像这样工作(或者我配置得很糟糕)。

    这个解决方案的另一个大问题是它以某种方式将我的POST HTTP请求更改为GET(WTF?!)。

  2. browser-sync proxy选项中使用内置版。在许多教程中,我看到使用带有proxy选项的server选项,但它似乎不再起作用了。所以我试着像serveStatic一样使用它:

    serveStatic: ['./build'],
    proxy: {
      target: 'devel.example.com',
      cookies: {
        stripDomain: false
      }
    }
    

    但这根本不起作用......

  3. 我真的很乐意为这个主题提供任何帮助。

    由于

0 个答案:

没有答案