能够为每个浏览窗户对象创建新的会话



在我的JS类构造中,我有一个变量。

this.cookieBrowser = new BrowserWindow({ show: true, webPreferences: { webSecurity: false } });

i稍后,然后在功能中调用该变量以创建一个新窗口...这可以正常工作...但是,对于我正在运行的每个任务(子进程),cookie/session数据是相同的 - 但是我需要每个浏览器都有不同的会话。

我想知道是否有任何方法可以完成此任务,因为每个对象当前都返回完全相同的cookie集。

我每次使用以下方式调用函数时都尝试清除会话:

    that.cookieBrowser.webContents.session.clearStorageData([], await function (data) {
    })

这似乎只是暂时清除饼干 - 从长远来看,所有饼干仍然相同。

您应该为每个浏览器指定一个不同的(持久或不持久)分区。

    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

来实现相同的结果。

请参阅此处所有浏览器选项以及sessionpartition属性之间的差异。

最新更新