BrowserSync 共享会话
BrowserSync share session
我想使用 BrowserSync 在 COTS(现成的商业)系统上进行一些测试和开发 - 想像 Sharepoint,但它不是 Sharepoint。
由于这是一个 COTS 系统,我们不能禁用的安全功能之一是它只允许每个用户 ID 有一个活动会话。同步多个浏览器并尝试登录将失败,因为 COTS 系统检测到不止一个用户登录。
有什么方法可以让浏览器同步将 window/browser 视为 'master' 会话,并使用主 window 的响应简单地重新绘制 'slaves' ?与复制所有操作并导致从不同浏览器发送多个请求相反?
我遇到了同样的问题,这是我的解决方案(我将 cookie 保存在 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;
});
}
}
]
}
});
});
我想使用 BrowserSync 在 COTS(现成的商业)系统上进行一些测试和开发 - 想像 Sharepoint,但它不是 Sharepoint。
由于这是一个 COTS 系统,我们不能禁用的安全功能之一是它只允许每个用户 ID 有一个活动会话。同步多个浏览器并尝试登录将失败,因为 COTS 系统检测到不止一个用户登录。
有什么方法可以让浏览器同步将 window/browser 视为 'master' 会话,并使用主 window 的响应简单地重新绘制 'slaves' ?与复制所有操作并导致从不同浏览器发送多个请求相反?
我遇到了同样的问题,这是我的解决方案(我将 cookie 保存在 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;
});
}
}
]
}
});
});