2012-08-03 100 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