我正在尝试使用PHP.net中的OAuthProvider库,当然,它没有记录。我遵循了Rasmus的教程,我遵循了djpate.com的教程,他们都没有为我工作,Rasmus没有链接到任何来源,他链接到的例子的来源是令人困惑的,当然,没有'跑步时工作。
我似乎总是得到一个“签名不匹配”的错误,我真的不明白,因为我已经按照教程去了T.。
无论如何,这应该是什么流程? 1.创建消费者密钥/秘密。校验。 2.获取访问令牌?我收到错误 - 签名来自哪里? 3.获取请求令牌?我收到错误
我正在尝试创建一个OAuthProvider,这样我就可以创建一个可以远程调用我的API的消费者帐户,而且对于一个初学者来说这似乎很难记录......无论如何都要在PHP土地上。
如果有人有任何正在运行的OAuthProvider库或者可以更详细地向我解释这一点,我将不胜感激。
提前致谢。
答案 0 :(得分:2)
http://oauth.net/core/1.0a/告诉你基本流程。
http://oauth.net/core/1.0a/#signing_process描述了请求的签名方式。
“签名过程对消费者秘密和令牌秘密进行编码 转换为请求中包含的可验证值。“
如果您使用的是pecl oauth / oauthprovider代码,则会自动为您生成签名(未记录但真实)。您可以通过将以下内容放入提供程序中的oauthexception catch部分来检查签名是什么:
catch (OAuthException $E)
{
error_log(print_r($this->provider, true));
echo OAuthProvider::reportProblem($E);
$this->oauth_error = true;
}
以及您的oauth消费者oauthexception catch部分中的以下内容:
catch(OAuthException $E)
{
error_log(print_r($oauth, true));
echo $E->getMessage();
}
通过这种方式,您可以检查错误日志,找出签名是什么以及签名是否确实不匹配。
答案 1 :(得分:0)
我有类似的错误。在我的情况下,这似乎是由于http与https网址中的签名不匹配造成的。
我会检查你是否在http和https之间重新定向。