簡體   English   中英

PHP OAuthProvider拒絕登台服務器上的簽名方法

[英]PHP OAuthProvider rejecting signature method on staging server

我已經使用PHP Extension制作了OAuth Provider。 在我的開發環境中,這可以正常工作,但是將其移到我們的登台服務器后,我仍然收到錯誤消息:

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

(為了方便閱讀,插入了中斷)

如您所見,簽名方法是有效的(我嘗試了規范中提到的其他方法,但是它們在登台服務器或開發服務器上均無效。

有人遇到過這樣的事情嗎? 如果需要更多信息,請告訴我。

您可以檢查是否有任何htauth內容被阻止嗎? 另外,您的應用程序會在HTTP和https連接之間跳來跳去嗎?

我相信您已設置htauth,這會阻止通信,我建議將您的虛擬主機修改為:

拒絕訂單,允許所有AuthType基本AuthName“受保護的區域” AuthUserFile拒絕需要您的IP地址中的有效用戶允許

如果將其放在您的虛擬主機引用中,請將該公用文件夾放置在公共文件夾中,而無需htpasswd。

謝謝,

我通過將SIGNATURE_METHOD = HmacSHA1更新為HMAC-SHA1來解決了這個問題。

暫無
暫無

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

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