BrowserSync共享会话

问题描述:

我想使用BrowserSync在COTS(商业,货架)系统上进行一些测试和开发 - 像Sharepoint一样思考,但它不是Sharepoint。BrowserSync共享会话

由于这是一个COTS系统,我们无法禁用的安全功能之一是它只允许每个用户ID一个活动会话。由于COTS系统检测到多个用户登录,所以多个浏览器同步并尝试登录将失败。

有没有什么办法让浏览器同步将窗口/浏览器视为'主'会话,并简单地使用主窗口的响应重新绘制'奴隶'?而不是复制所有操作并导致从不同浏览器发送多个请求?

我在这里同样的问题是我的解决方案(我保存cookies在BS和使用它的时候,它很适合我):

gulp.task('browser-sync', function() { 
    var cookies = {}; 

    browserSync.init({ 
     proxy: { 
      target: "localhost", 
      proxyReq: [ 
       function (proxyReq) { 
        var cookieText = Object.keys(cookies).map(function (name) { 
         return name + '=' + cookies[name]; 
        }).join('; ') 
        if (proxyReq._headers.cookie) { 
         proxyReq.setHeader('cookie', cookieText); 
        } 
       } 
      ], 
      proxyRes: [ 
       function (proxyRes, req, res) { 
        if (proxyRes.headers && proxyRes.headers['set-cookie']) { 
         proxyRes.headers['set-cookie'].forEach(function (cookie) { 
          var name, value; 
          var t = cookie.split(';')[0].split('='); 
          name = t[0]; 
          value = t[1]; 
          cookies[name] = value; 
         }); 
        } 
       } 
      ] 
     } 
    }); 
});