2016-08-25 4 views
1

У меня есть куча файлов cookie в формате JSON. Они являются результатом экспорта файлов cookie из плагина под названием EditThisCookie.Запросы установки cookie в cookieJar, включая поддомены

Я пытаюсь проанализировать массив файлов cookie JSON и добавить их в файл 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. Это не работает. Очевидно, потому что мне не хватает domain из файла cookie.

Итак, я создаю жесткий файл cookie и добавлю domain: '.facebook.com'. Только теперь, когда я делаю запрос, он терпит неудачу с ошибкой:

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

Как я в состоянии установить кук в cookiejar работать через поддомены? Является ли это возможным?

Документация не очень хорошая, и мне не удалось выяснить, как это сделать. Я думаю, что это имеет какое-то отношение к URL-адресу, переданному в setCookie. Я попытался изменить это на разные варианты безрезультатно.

+0

@CBroe неправильный. Я продавал программное обеспечение, которое помогает администраторам групп управлять спамом в своих группах в течение прошлого года. Такие действия не могут выполняться с API, поскольку конечная точка группы ограничена. В течение 8 месяцев Facebook знал о моем программном обеспечении, так как я тесно сотрудничаю с ошибками в сообществе разработчиков системы безопасности Facebook. У них нет проблем с этим, поскольку это приносит пользу владельцам групп и делает то, что API не поддерживает. – BugHunterUK

+1

@CBroe https://www.facebook.com/apps/site_scraping_tos_terms.php?hc_location=ufi ... см. Номер 2. У нашей компании есть разрешение от Facebook. Любой может подать заявку на получение разрешения, заполнив следующую форму: https://www.facebook.com/apps/site_scraping_tos.php – JamesTheHacker

ответ

1

У меня была такая же проблема в последнее время. Решение состоит в том, чтобы сделать это:

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 не требуется. Это обсуждалось и на tough-cookie github issue.

Смежные вопросы