1

我使用PHP Extension创建了一个 OAuth Provider 。这在我的开发环境中运行良好,但在将其移动到我们的暂存服务器后,我不断收到错误消息:

oauth_problem=signature_method_rejected

我已经通过在连接到自身的登台服务器上使用测试脚本进行连接、连接登台服务器的开发服务器以及使用 PHP OAuth 扩展和Zend OAuth 消费者类来测试这一点。在任何情况下,它在连接到开发服务器时都可以工作,但在连接到暂存服务器时会出现上述错误。

跟踪代码,实例化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

(为了可读性插入了中断)

如您所见,签名方法是有效的(我已经尝试过规范中提到的其他方法,但它们在登台服务器或开发服务器上都不起作用。

有没有人遇到过这样的事情?如果需要更多信息,请告诉我。

4

2 回答 2

1

你能检查一下你是否有任何 htauth 东西阻塞吗?此外,您的应用程序是否会在 http 和 https 连接之间躲避和潜水?

我相信您已经设置了 htauth,这会阻止通信我建议将您的虚拟主机修改为:

Order Deny,Allow deny from all AuthType Basic AuthName "Protected Area" AuthUserFile 要求您的 IP 地址允许有效用户

如果你把它放在你的虚拟主机引用你的公用文件夹中,这应该允许 IP 地址在没有 htpasswd 的情况下进行通信......

谢谢,

于 2012-08-09T13:26:04.233 回答
0

我通过更新解决了这个SIGNATURE_METHOD = HmacSHA1问题HMAC-SHA1

于 2015-08-06T15:04:43.300 回答