您好,我正在尝试为 puppeteer 设置一些 cookie,这样我就不必每次启动应用程序时都登录。但由于某些愚蠢的原因我无法设置它,无论我做什么,它都会向我抛出相同的错误。
这是我尝试过的:
await main_page.setExtraHTTPHeaders({
'Cookie': process.env.SECRETCOOKIE
});
问题是它仅适用于初始请求,而对于其他请求,它不会设置 cookie,因此我仍然未经授权。
main_page.on('request')
无法正常工作。
这是我的饼干:
[
{
name: '29bd58896df4f6b1cffb2262ba9ede2a',
value: '2717086f555f480cdfsf5b0671ba9ddb131aff624a:4:{i:0;s:5:"24544";i:1;s:22:"efeefefsfsfsdfsdf";i:2;i:604800;i:3;a:1:{s:5:"title";s:22:"sfdsfsdfsdfsdfsdf";}}'
},
{ name: 'dffsfsfs', value: 'b5rknd0edbnu9vmlofhh0cc7j2' }
]
我使用
cookie.parse
解析(它最初是一个字符串)
const tr = transformCookies(cookie.parse(process.env.SECRETCOOKIE));
并使用映射进行转换
function transformCookies(cookieObj)
{
return Object.keys(cookieObj).map(key => {
const url = new URL(process.env.MAIN_URL)
return {
name: key,
value: cookieObj[key],
// domain: url.host,
// path: '/',
}
});
}
(我已经尝试过主机和域名,但仍然不起作用)
我还尝试将原始cookie从
cookie.parse
传递而不转换到setCookie,但它仍然不起作用。
所以错误是这样的:
ProtocolError:协议错误(Network.deleteCookies):无效参数无法反序列化 params.name - BINDINGS:位置 246 处缺少必填字段
在