我使用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
(为了可读性插入了中断)
如您所见,签名方法是有效的(我已经尝试过规范中提到的其他方法,但它们在登台服务器或开发服务器上都不起作用。
有没有人遇到过这样的事情?如果需要更多信息,请告诉我。