【问题标题】:How to stop Electron windows sharing cookies?如何停止 Electron windows 共享 cookie?
【发布时间】:2019-08-16 02:26:23
【问题描述】:

我正在一个电子应用程序中创建多个浏览器窗口,但我不希望它们共享 cookie。这就是我当前创建窗口的方式,

function createWindow() {
    // Create the browser window.
    let mainWindow = new BrowserWindow({ minWidth: 660, minHeight: 400, width: 1208, height: 680 })
    // setInterval(() => sendStatus(0, 'FAIL'), 5000);
    // Emitted when the window is closed.
    return mainWindow;
}

但是,当打开多个窗口时,它们会在它们之间共享 cookie。

【问题讨论】:

    标签: node.js electron


    【解决方案1】:

    您可以为BrowserWindow 实例定义session(或partition

    不同会话中的浏览器窗口不共享 cookie,因此您只需为每个窗口定义不同的会话。喜欢

    let counter = 0
    
    function createWindow() {
      let mainWindow = new BrowserWindow({
        webPreferences: {
          session: session.fromPartition(`${counter++}`)
        }
      })
      return mainWindow;
    }
    

    或任何更复杂的方式。

    【讨论】:

    • 会话将在内存中对吗?有没有办法销毁会话或根本不保存它们?
    • 谢谢,您可以执行类似的操作将会话附加到新的 BrowserWindow
    • @Dorian AFAIK 你不能,你只能在创建时将会话传递给 webcontents
    • @pergy 我做到了,它有效 :) 我已经有 BrowserWindows 共享一个会话,并希望在新的 BrowserWindow 中进行相同的会话
    • @Dorian 好吧,是的,你可以这样做,在构造函数中你可以使用已经使用过的会话(OP 询问如何摆脱它);)。我以为您想为已创建的 BW 分配一个新会话。
    猜你喜欢
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多