多账号同时登录,实现cookie隔离
·
在项目开发过程中用到了多账号保持登录状态,可以来回切换,并且保留一段时间不掉线的要求,试了一些方法,最后通过electron自带的隔离实现的。因为公司保密要求,这里只做简单的内容分享,我把代码简单描述下:
先在主进程中创建一个新的 BrowserWindow 实例,用于加载网页,然后用 session.partition 来创建一个隔离的会话分区,以便 Cookie可以在该分区中独立存储。在渲染进程中,用webFrame.setSpellCheckProvider 方法来设置 Cookie 分区,以确保 Cookie 在正确的分区中使用。然后在网页中,可以通过 document.cookie 来读取和设置 Cookie。
下面是一个示例代码,展示了如何使用 Electron 实现 Cookie 隔离:
// 主进程代码
const { app, BrowserWindow, session } = require('electron')
app.whenReady().then(() => {
const mainWindow = new BrowserWindow()
// 创建隔离的会话分区
const partition = 'cookiePartition'
const ses = session.fromPartition(partition)
// 在渲染进程中设置 Cookie 分区
mainWindow.webContents.session.setSpellCheckProvider(partition, {
spellCheck: (text) => {
// 自定义的 Cookie 分区逻辑
// 可以根据自己的需求进行处理
return true
}
})
mainWindow.loadURL('https://example.com')
})
// 渲染进程代码
// 无需特殊处理,可以正常使用 document.cookie
在这个示例中,创建了一个名为 cookiePartition 的隔离会话分区,并在渲染进程中设置了 Cookie 分区。在渲染进程中,可以像平常一样使用 document.cookie 来读取和设置 Cookie,而这些 Cookie 将被存储在隔离的会话分区中。举例很简单,通俗易懂!!!
更多推荐

所有评论(0)