2016-08-25 14 views
1

JSON形式のクッキーがたくさんあります。それらはEditThisCookieというプラグインからクッキーをエクスポートした結果です。サブドメインを含むcookieJarのクッキーの設定をリクエストします

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。これは機能しません。私がクッキーからdomainを紛失しているので、明らかに。

したがって、私はタフなクッキーを作成し、domain: '.facebook.com'を追加します。私はエラーで失敗した要求をするとき以外は今:

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

は、どのように私はサブドメイン間で動作するようにをCookieJarにクッキーを設定することができていますか?出来ますか?

ドキュメンテーションはあまり良くありませんが、これを行う方法を見つけることができませんでした。私はそれがsetCookieに渡されたURLと関係があると思います。私は、さまざまなバリエーションにそれを無駄に変更しようとしました。

+0

@CBroeが間違っています。私は過去1年間、グループ管理者がグループのスパムを管理するのに役立つソフトウェアを販売してきました。グループのエンドポイントが限られているため、このような操作はAPIで実行できません。私がFacebookのセキュリティチームと緊密に協力してバグを報告しているので、Facebookは私のソフトウェアを8ヶ月間認識していました。彼らはグループの所有者に利益をもたらし、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でも議論されました。

関連する問題