2015-10-01 75 views
0

我在寫一個webservice客戶端,它從命令行運行並訪問使用Oauth2的服務。PHP Curl - 頭文件不會持久存在重定向

我似乎正確地獲得了Oauth標記,並且第一個請求web服務可以識別該標記。但是,響應是303重定向(我已設置CURLOPT_FOLLOWLOCATION => true),但後續頁面顯示我沒有提供身份驗證令牌。

目前我通過設置標頭捲曲句柄傳遞OAuth令牌:

"Authorization: OAuth2 $oauth" 

我懷疑是不是被包括在後續請求頭。

我試過設置CURLOPT_UNRESTRICTED_AUTH => true,但是沒有用(但是根據手冊,它在整個重定向中保留了一個用戶名和密碼 - 而不是認證頭)。

web服務允許在身份驗證頭或URL中(而不是cookie)發送oauth令牌。在URL中設置令牌會返回相同的重定向(即URL中沒有令牌),因此我不能在CURLOPT_FOLLOWLOCATION上使用此方法。

(服務不允許在cookie中發送OAuth憑證,PHP版本是5.6)

+1

您正在請求SSL主機? –

+0

是的(這使得很難看到代碼實際上在做什麼) – symcbean

+0

你添加了:curl_setopt($ conn,CURLOPT_SSL_VERIFYPEER,FALSE); curl_setopt($ conn,CURLOPT_SSL_VERIFYHOST,FALSE);捲曲選項? –

回答

0

已經發現了很多其他的不好的事情上,我通過已知(緩存內容連接Websense的代理髮生過期,緩存POST迴應!)我試着完全繞過它,所有的問題都消失了。