Node.js 请求在cookieJar中设置cookie,包括子域
我有一堆JSON格式的cookies。它们是从名为的插件导出cookie的结果 我试图解析JSON cookie数组并将它们添加到cookiejar中。我是这样做的:Node.js 请求在cookieJar中设置cookie,包括子域,node.js,cookies,node-request,Node.js,Cookies,Node Request,我有一堆JSON格式的cookies。它们是从名为的插件导出cookie的结果 我试图解析JSON cookie数组并将它们添加到cookiejar中。我是这样做的: JSONCookies.forEach(cookie => { let extensions = [ 'session=true', 'sameSite=no_restriction' ]; cookies.push(new ToughCookie.Cookie({
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中的域
因此,我创建了一个艰难的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
中的前导
不是必需的。这也在网上讨论过。@CBroe错了。在过去的一年里,我一直在销售帮助组管理员管理其组上的垃圾邮件的软件。由于组端点有限,因此无法使用API执行此类操作。Facebook已经知道我的软件8个月了,因为我与Facebook的安全团队密切合作,报告漏洞。他们对此没有问题,因为它有利于组的所有者,并且做了API不支持的事情。@CBroe。。。见第2条。我们公司得到了Facebook的许可。任何人都可以通过填写以下表格申请许可: