Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 请求在cookieJar中设置cookie,包括子域_Node.js_Cookies_Node Request - Fatal编程技术网

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

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({

我有一堆JSON格式的cookies。它们是从名为的插件导出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中的

因此,我创建了一个艰难的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的许可。任何人都可以通过填写以下表格申请许可: