请求在CookieJar中设置Cookie,包括子域名

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

我试图parsingJSON 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

所以,我创build了强韧的cookie,并添加了domain: '.facebook.com' 。 除了现在,当我发出一个请求失败,并出现一个错误:

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

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

文档不是很好,我一直无法find如何做到这一点。 我认为这与传递给setCookie的URL setCookie 。 我试图改变,以不同的变化无济于事。

我最近有同样的问题。 解决scheme是这样做的:

 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不是必需的。 这个问题也被讨论了。