2016-11-22 225 views
1

我想使用BrowserSync在COTS(商業,貨架)系統上進行一些測試和開發 - 像Sharepoint一樣思考,但它不是Sharepoint。BrowserSync共享會話

由於這是一個COTS系統,我們無法禁用的安全功能之一是它只允許每個用戶ID一個活動會話。由於COTS系統檢測到多個用戶登錄,所以多個瀏覽器同步並嘗試登錄將失敗。

有沒有什麼辦法讓瀏覽器同步將窗口/瀏覽器視爲'主'會話,並簡單地使用主窗口的響應重新繪製'奴隸'?而不是複製所有操作並導致從不同瀏覽器發送多個請求?

回答

1

我在這裏同樣的問題是我的解決方案(我保存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; 
         }); 
        } 
       } 
      ] 
     } 
    }); 
});