BrowserSync共享会话

时间:2016-11-22 11:42:24

标签: gulp browser-sync

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

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

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

1 个答案:

答案 0 :(得分:2)

我遇到同样的问题是我的解决方案(我在BS中保存cookie并一直使用它,它对我很有用):

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;
                        });
                    }
                }
            ]
        }
    });
});