2012-08-03 147 views
1

上PHP OAuthProvider拒絕簽名方法我做了使用PHP Extension一個OAuth提供者。這工作正常,在我的開發環境,但其移動到我們的臨時服務器後,我不斷收到錯誤消息:臨時服務器

oauth_problem=signature_method_rejected 

我已經通過連接到自身的臨時服務器上測試腳本,開發連接測試這服務器連接登臺服務器,並使用PHP OAuth Extension和Zend OAuth Consumer類。在任何情況下,它在連接到開發服務器時都有效,但在連接到登臺服務器時會出現上述錯誤。

通過代碼跟蹤,當OAuthProvider類被實例化,給出該錯誤。

$this->provider = new OAuthProvider(); 

檢查$ _ SERVER [ 'QUERY_STRING']給了我下面的:

oauth_consumer_key=6e449c12132115a9ba1cf1163c37f904& 
oauth_nonce=e2ff158969b3e7213927e4a19de1b11f& 
oauth_timestamp=1343990462& 
oauth_signature_method=HMAC-SHA1& 
oauth_version=1.0& 
oauth_callback=redacted& 
oauth_signature=y06YvCzVno8GSDib4%2BOeExDGWH0%3D 

(插入可讀性休息)

正如你所看到的簽名方法是有效的(I」已經試過在規格中提到的其他方法,但他們並沒有任何的臨時服務器或開發服務器上工作。

有沒有人遇到過這樣的事嗎?如果任何更多的信息是必需的,請讓我知道。

回答

1

你可以檢查,如果您有任何htauth東西堵?另外,您的應用程序是否會在http和https連接之間跳躍?

我相信你有htauth設置這是阻止我建議修改您的虛擬主機的通信:

訂單拒絕,允許 所有 基礎進行AuthType AuthName指令 拒絕「保護區」 的AuthUserFile 需要有效─用戶 從您的IP地址

允許如果你把這個在你的虛擬主機引用您的公用文件夾這應該允許的IP地址,而不htpasswd的東西傳達....

謝謝,

+0

啊哈,這就是問題所在!我們停止使用http身份驗證(應用於網站,但不是oauth提供商),並使用受限制的ip,現在它工作正常。 我的想法是,在訪問網站(並因此登錄到一個HTTP驗證的用戶所訪問的)我們被中斷,或以某種方式導致與OAuthProvider對象的問題。非常隱晦,斑點。謝謝。 – DanielM 2012-08-09 13:30:16

0

我解決了這個更新SIGNATURE_METHOD = HmacSHA1HMAC-SHA1