Если вы работаете в MacOS (к сожалению, в настоящее время я не могу комментировать, чтобы спросить), я тоже довольно долго искал ответ на эту проблему ... и ответ заключается в том, что значение cookie шифруется вашими учетными данными пользователя MacOS вТаблица БД SQL, которую вам необходимо сначала расшифровать с помощью чего-то, что может получить доступ к вашей цепочке для ключей (с вашего разрешения, разумеется).
После расшифровки, часть 2) преобразует это в то, что Puppeteer примет.
Существует пакет NPM, который выполняет первое, но не второе (https://github.com/bertrandom/chrome-cookies-secure),, но я работал над этим, так что теперь он генерирует готовые куки Puppeteer для любого данного профиля Chrome. Существует PRзапрос на него (https://github.com/bertrandom/chrome-cookies-secure/pull/14) - еще не принят - но у меня он работает в реальном приложении в течение месяца.
Добавьте пакет NPM для chrome-cookies-secure
в свое приложение, и вы 'Я буду в пути.
Основные моменты создания объекта Puppeteer заключаются в следующем (вы должны увидеть изменения в index.js дляоткрытый PR, плюс пример в README.MD):
// 'cookie' is an array of Objects with keys as written in decrypted SQL DB
let puppeteerCookies = [];
cookies.forEach(function(cookie, index) {
const puppeteerCookieObject = {
name: cookie.name,
value: cookie.value,
expires: cookie.expires_utc,
domain: cookie.host_key,
path: cookie.path
}
if (cookie.is_secure) {
puppeteerCookieObject['Secure'] = true
}
if (cookie.is_httponly) {
puppeteerCookieObject['HttpOnly'] = true
}
puppeteerCookies.push(puppeteerCookieObject)
})
return puppeteerCookies;
Надеюсь, это поможет.