node.js - 为每个 BrowserWindow 对象创建一个新会话的能力?
问题描述
在我的 JS 类构造函数中,我有一个变量。
this.cookieBrowser = new BrowserWindow({ show: true, webPreferences: { webSecurity: false } });
然后我在一个函数中调用该变量来创建一个新窗口......这工作得很好......但是,对于我正在运行的每个任务(子进程),cookie/会话数据是相同的 - 但我需要每个浏览器都有不同的会话。
我想知道是否有任何方法可以完成此任务,因为每个对象当前都返回完全相同的 cookie 集。
每次我使用以下方法调用函数时,我都尝试清除会话:
that.cookieBrowser.webContents.session.clearStorageData([], await function (data) {
})
这似乎只是暂时清除 cookie - 从长远来看,所有 cookie 仍然相同。
解决方案
您应该为每个浏览器窗口指定不同的(持久或非持久)分区。
this.cookieBrowser = new BrowserWindow({
show: true,
webPreferences: {
webSecurity: false,
partition: 'unique_random_path' // OR 'persist:unique_random_path' to save session on disk
}
});
this.cookieBrowser2 = new BrowserWindow({
show: true,
webPreferences: {
webSecurity: false,
partition: 'unique_random_path2' // OR 'persist:unique_random_path2' to save session on disk
}
});
您可以通过将会话对象传递给webPreferences
.
在这里查看所有browserWindow 选项以及session
和partition
属性之间的区别。
推荐阅读
- python - 在 Python 中使用 windows 窗体如何更改消息框的起始位置
- ssas - MDX 上的括号要求
- swift - 快速在搜索栏中获取结果的问题
- sql - 从表中选择最大值
- python - 查找值是否存在于 Python 中的列表列表中
- spring-boot - @WebMvcTest 加载应用上下文
- wso2 - WSO2 API Manager 3.2.0 注册回调与代理后面的 customUrl 不匹配
- python - Proc Rank 替代 Python
- filtering - 在 Dataweave 中过滤值
- javascript - Document.write(); 完全包含 HTML、HEAD、BODY 标记不起作用