Session.cookies 是空的,而 JavaScript document.cookie 不是
Session.cookies is empty while JavaScript document.cookie is not
我想从 BrowserWindow 对象获取所有 cookie,包括 HTTPonly cookie。
我已经通读了以下代码将输出 BrowserWindow 中使用的所有 cookie 的文档:
windowObject.webContents.session.cookies
。
returns 一个空的 cookie 对象:Cookies: {}
.
如果我使用以下代码,我会得到所有的 cookie,除了非常需要的 HTTPonly(出于安全目的不会返回):
return windowObject.webContents.executeJavaScript(`document.cookie;`,true).then(function(result){
console.log(result);
});
问题证明;
将此代码放入您的 app.on('ready') 函数中:
const Window = electron.BrowserWindow;
var windowObject = new Window({show: true, webPreferences:{images:false}});
windowObject.loadURL("https://www.tweakers.net");
windowObject.webContents.on('did-finish-load', function() {
console.log(windowObject.webContents.session);
console.log(windowObject.webContents.session.cookies);
windowObject.webContents.executeJavaScript(`document.cookie;`, true).then(function(result){
console.log(result);
});
});
Returns(这段被我截断了):
为什么会话 returns 没有 cookie?如何解决?
我正在使用 Electron:1.7.5
提前感谢您的帮助!
windowObject.webContents.session.cookies
returns defaultSession 会话对象。这让我误以为有一个独特的 session
对象绑定到 windowObject
对象。
我的cookie可以通过以下代码获取:
const electron = require('electron');
const Window = electron.BrowserWindow;
var windowObject = new Window({show: true, webPreferences:{images:false}});
windowObject.loadURL("https://www.tweakers.net");
windowObject.webContents.on('did-finish-load', function() {
windowObject.webContents.session.cookies.get({}, (error, cookies) => {
console.log(cookies);
});
});
也可以通过以下代码获取所有cookies:
const electron = require('electron');
const session = electron.session;
return session.defaultSession.cookies.get({}, (error, cookies) => {
console.log(cookies);
});
例如,可以对这些进行过滤以获得属于某个域名的正确 cookie。要做到这一点,只需简单地使用:
anySessionObject.cookies.get({domain: "yourdomain.com"}, (error, cookies) => {
console.log(cookies);
});
已在 GitHub 打开关于我的发现的票证。您可以在这里查看:https://github.com/electron/electron/issues/10364
我想从 BrowserWindow 对象获取所有 cookie,包括 HTTPonly cookie。
我已经通读了以下代码将输出 BrowserWindow 中使用的所有 cookie 的文档:
windowObject.webContents.session.cookies
。
returns 一个空的 cookie 对象:Cookies: {}
.
如果我使用以下代码,我会得到所有的 cookie,除了非常需要的 HTTPonly(出于安全目的不会返回):
return windowObject.webContents.executeJavaScript(`document.cookie;`,true).then(function(result){
console.log(result);
});
问题证明; 将此代码放入您的 app.on('ready') 函数中:
const Window = electron.BrowserWindow;
var windowObject = new Window({show: true, webPreferences:{images:false}});
windowObject.loadURL("https://www.tweakers.net");
windowObject.webContents.on('did-finish-load', function() {
console.log(windowObject.webContents.session);
console.log(windowObject.webContents.session.cookies);
windowObject.webContents.executeJavaScript(`document.cookie;`, true).then(function(result){
console.log(result);
});
});
Returns(这段被我截断了):
我正在使用 Electron:1.7.5
提前感谢您的帮助!
windowObject.webContents.session.cookies
returns defaultSession 会话对象。这让我误以为有一个独特的 session
对象绑定到 windowObject
对象。
我的cookie可以通过以下代码获取:
const electron = require('electron');
const Window = electron.BrowserWindow;
var windowObject = new Window({show: true, webPreferences:{images:false}});
windowObject.loadURL("https://www.tweakers.net");
windowObject.webContents.on('did-finish-load', function() {
windowObject.webContents.session.cookies.get({}, (error, cookies) => {
console.log(cookies);
});
});
也可以通过以下代码获取所有cookies:
const electron = require('electron');
const session = electron.session;
return session.defaultSession.cookies.get({}, (error, cookies) => {
console.log(cookies);
});
例如,可以对这些进行过滤以获得属于某个域名的正确 cookie。要做到这一点,只需简单地使用:
anySessionObject.cookies.get({domain: "yourdomain.com"}, (error, cookies) => {
console.log(cookies);
});
已在 GitHub 打开关于我的发现的票证。您可以在这里查看:https://github.com/electron/electron/issues/10364