gpt4 book ai didi

javascript - Session.cookies 为空而 JavaScript document.cookie 不是

转载 作者:行者123 更新时间:2023-11-29 23:38:10 25 4
gpt4 key购买 nike

我想从 BrowserWindow 对象获取所有 cookie,包括 HTTPonly cookie。我已经通读了以下代码将输出 BrowserWindow 中使用的所有 cookie 的文档:windowObject.webContents.session.cookies。这将返回一个空的 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);
});
});

返回(这是我 chop 的):

Truncated result from the commandline为什么 session 不返回任何 cookie?如何解决?

我正在使用 Electron:1.7.5

提前感谢您的帮助!

最佳答案

windowObject.webContents.session.cookies 返回 defaultSession session 对象。这让我误以为有一个唯一的 session 对象绑定(bind)到 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

关于javascript - Session.cookies 为空而 JavaScript document.cookie 不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45894850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com