gpt4 book ai didi

node.js - 请求在 cookieJar 中设置 cookie,包括子域

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:43 24 4
gpt4 key购买 nike

我有一堆 JSON 格式的 cookie。它们是从名为 EditThisCookie 的插件导出 cookie 的结果。 .

我正在尝试解析 JSON cookie 数组并将它们添加到 cookiejar 中。我这样做是这样的:

JSONCookies.forEach(cookie => {
let extensions = [
'session=true',
'sameSite=no_restriction'
];

cookies.push(new ToughCookie.Cookie({
key: cookie.name,
value: cookie.value,
secure: cookie.secure || false,
path: cookie.path,
httpOnly: cookie.httpOnly || false,
extensions: extensions
}));

// Set the uid property of object with users ID
if(cookie.name === 'c_user') {
this.uid = cookie.value;
}
})

我将它们添加到请求的 cookiejar 中:

cookies.forEach(function(cookie) {
cookieJar.setCookie(cookie, 'https://facebook.com', (err, cookie) => {
if(err) {
reject(new Error(err));
return;
}
})
})

...这工作得很好。我可以向 Facebook 提出请求并从我们的业务组提取数据。

但是,Facebook 上的许多请求都使用子域。例如 upload.facebook.com。这是行不通的。显然是因为我缺少 cookie 中的domain

因此,我创建了ough-cookie 并添加域名:'.facebook.com'。但现在当我发出请求时,它失败并出现错误:

Error: Cookie not in this host's domain. Cookie:facebook.com Request:null

如何设置 cookiejar 中的 cookie 以便跨子域工作?可能吗?

文档不是很好,我一直无法找到如何做到这一点。我认为这与传递给 setCookie 的 URL 有关。我尝试将其更改为不同的变体,但没有成功。

最佳答案

我最近也遇到了同样的问题。解决方案是这样做:

cookies.push(new ToughCookie.Cookie({
domain: 'facebook.com'
key: cookie.name,
value: cookie.value,
secure: cookie.secure || false,
path: cookie.path,
httpOnly: cookie.httpOnly || false,
extensions: extensions
}));

不需要 .facebook.com 中的前导 .。这在 tough-cookie github issue 上进行了讨论。也是。

关于node.js - 请求在 cookieJar 中设置 cookie,包括子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39145030/

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