簡體   English   中英

PHP和cURL cookie

[英]PHP and cURL cookies

我正在嘗試建立一個使用cURL擊中第三方服務器以登錄他們的php頁面。現在我的代碼確實成功登錄了第三方服務器,但是由於cURL沒有將SESSION cookie發送給用戶,因此用戶必須自己登錄

如何獲取cURL將cookie轉發到客戶端。 謝謝

請查看文檔 ,了解以下cURL選項:

CURLOPT_COOKIE
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR

編輯

在更徹底地閱讀了您的問題之后,除非您將客戶端重定向到嘗試對其進行授權的站點,否則恐怕無法告訴您將cookie寫入客戶端瀏覽器的方法。 瀏覽器cookie在稱為“ 相同來源策略”的安全模型上運行。 這基本上意味着域只能為自己的OWN域發布cookie,而不能為其他域發布cookie。 在您的特定情況下:

client --CONTACTS--> foo.com --cURL-LOGIN--> bar.com
bar.com --bar.com-COOKIE--> foo.com --foo.com-COOKIE--> client
client --foo.com-COOKIE--> bar.com (Will not work)

基本上,foo.com不能在bar.com的客戶端上創建cookie!

無論如何,用戶的瀏覽器很可能不允許您為另一個域設置cookie。

您可以使用PHP代碼登錄並獲取(例如)Hotmail的會話cookie。 但是您將無法將該會話傳遞給用戶(因此他/她也將登錄)。

這是因為許多瀏覽器和配置都拒絕設置第三方Cookie。

您可以在用戶的​​瀏覽器中設置cookie,而無需將其重定向到服務器。 您需要做的是讓用戶使用curl代碼訪問您的php頁面。 那么您可以獲取他的帖子數據,並將其發送到服務器。 但是不要讓服務器重新引導您。 將選項CURLOPT_FOLLOWLOCATION設置為false並將CURLOPT_HEADER設置為true現在抓取標題並提取cookie和位置標題,然后將它們作為標題傳遞給客戶端瀏覽器,例如header(“ Location:...)and header(” Set-Cookie :....)。 您也可以通過提取其他標頭來發送它們。 以下[post] html頁面未通過libcurl獲取cookie的情況類似

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM