将多个 windows 的 cookie 分开
Separate cookies of multiple windows
我想写一个 electron 应用程序,它基于 windows.
使用此应用程序,我希望能够以不同 windows 中的不同角色登录网络应用程序。
因此,我需要一个功能来将 cookie 存储在应用程序的不同 windows 的不同位置。 HTML,window A 的 JS 代码和 cookies 数据应该 看不到 windows B 的数据。
或者,我可以想象以某种方式捕获设置 cookie 请求 并将它们保存在内存中,因此不在 HD 上使用应用程序全局 cookie 存储.
Could someone provide code for this feature?
我知道 userData
的 , which explains how to app.setPath()。不幸的是 userData
是应用程序全局的,而不是例如window本地。
如果我现在能够捕获每个 BrowserWindow 的每个 cookie-set
操作,我将能够使用 app.setPath()
并根据 [=44] 切换 cookie 存储=], 陷阱被解雇了。
我确实找到了解决方案:
首先创建一个分区。将其命名为 SomeNameForMySession
:
const partition = 'persist:SomeNameForMySession'
然后在创建时像这样传递 partition to a BrowserWindow:
var ctrlWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
partition: partition
}
})
如果另一个 BrowserWindow gets another partition 有另一个名字,windows 有完全分离的 cookie。
如果另一个 BrowserWindow gets the same partition,windows 共享 cookie 存储。
使用它,您可以例如跟踪在指定分区会话中发生的 cookie 事件:
// First find the correct session based on the partitions name
const ses2 = session.fromPartition( partition2 )
// Then, add a listener
ses2.cookies.addListener( 'changed', function ( event, cookie, cause, removed ) {
console.log('COOKIE: ' + cookie.name + ' :: ' + cookie.value )
})
我想写一个 electron 应用程序,它基于 windows.
使用此应用程序,我希望能够以不同 windows 中的不同角色登录网络应用程序。
因此,我需要一个功能来将 cookie 存储在应用程序的不同 windows 的不同位置。 HTML,window A 的 JS 代码和 cookies 数据应该 看不到 windows B 的数据。
或者,我可以想象以某种方式捕获设置 cookie 请求 并将它们保存在内存中,因此不在 HD 上使用应用程序全局 cookie 存储.
Could someone provide code for this feature?
我知道 userData
的 userData
是应用程序全局的,而不是例如window本地。
如果我现在能够捕获每个 BrowserWindow 的每个 cookie-set
操作,我将能够使用 app.setPath()
并根据 [=44] 切换 cookie 存储=], 陷阱被解雇了。
我确实找到了解决方案:
首先创建一个分区。将其命名为 SomeNameForMySession
:
const partition = 'persist:SomeNameForMySession'
然后在创建时像这样传递 partition to a BrowserWindow:
var ctrlWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
partition: partition
}
})
如果另一个 BrowserWindow gets another partition 有另一个名字,windows 有完全分离的 cookie。 如果另一个 BrowserWindow gets the same partition,windows 共享 cookie 存储。
使用它,您可以例如跟踪在指定分区会话中发生的 cookie 事件:
// First find the correct session based on the partitions name
const ses2 = session.fromPartition( partition2 )
// Then, add a listener
ses2.cookies.addListener( 'changed', function ( event, cookie, cause, removed ) {
console.log('COOKIE: ' + cookie.name + ' :: ' + cookie.value )
})