簡體   English   中英

cURL遵循登錄表單的重定向

[英]cURL follow redirects for Login form

我正在嘗試使用PHP cURL登錄到網站並轉到特定的URL來檢索其內容。

這是我要查看的頁面: https : //dev-portal.getpebble.com/developer

但是,此頁面要求用戶登錄,登錄頁面位於: https : //auth.getpebble.com/users/sign_in

奇怪的是,登錄頁面具有隱藏值“ authenticity_token”,該值必須與表單一起提交。 所以我目前的流程是:

  1. cURL獲取登錄頁面的內容。 (在身份驗證網址上調用cURL)
  2. 從頁面獲取“身份令牌”(獲取帖子數據的令牌)
  3. cURL使用真實性令牌+憑據提交到登錄頁面(使用發布數據在Auth url上調用cURL)

如該圖片所示(從exec獲取卷曲內容的屏幕截圖),該方法有效: http : //i.gyazo.com/4eccb78bf18f72f1da65bc9d8967541e.png

但是,此過程將我帶到: https : //auth.getpebble.com/me ,現在我需要使用我擁有的經過身份驗證的會話使用cURL將我帶到https://dev-portal.getpebble.com/developer 我曾嘗試保存Cookie,但似乎無法正常工作。

在上述第3步之后,我嘗試在https://dev-portal.getpebble.com/developer頁面上調用cURL,但我一直保持重定向到“ localhost / users / auth / pebble”(甚至不存在? ?我認為cURL導致頁面重定向?),如果我在重定向發生之前取消了重定向,則會得到未經身份驗證的頁面: http : //i.gyazo.com/218e00c262651017df4dcc1927def87f.png

這是我創建cURL請求的代碼。

    private function cURL($url, $postData = false)
{

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($ch, CURLOPT_FORBID_REUSE, TRUE);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, FALSE);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
    curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookie);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookie);
    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
    if ($postData)
    {
        curl_setopt($ch, CURLOPT_POST, TRUE);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
    }

    $content = $this->content = curl_exec($ch);

    echo $content;

    curl_close($ch);
    return $content;
}

原來Cookie是在其他頁面而非https://dev-portal.getpebble.com/developer上生成的,因此此頁面將創建無效的會話。

我設法通過使用https://dev-portal.getpebble.com/users/auth/pebble而不是https://dev-portal.getpebble.com/developer對其進行了修復,盡管進行了重定向,但它將使我進入已驗證的狀態/開發人員頁面。

暫無
暫無

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

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