【问题标题】:OAuth Error: verification of signature failedOAuth 错误:签名验证失败
【发布时间】:2013-09-07 04:21:00
【问题描述】:

我有我的 Oauth Provider,它是使用库 Oauth php 用 php 编写的

我正在使用 jsOauth 库 link 制作一个 phonegap 应用程序以使用我的服务器中的 Oauth 服务 我正在按照this tutorial中提供的步骤进行操作

但我在请求 access_token 以交换收到的请求令牌时从服务器收到错误。

OAuth 验证失败:签名验证失败(签名基本字符串为“G​​ET&http%3A%2F%2Fapi.amishra.abc-dev.com%2Foauth%2Faccess_token.php&oauth_callback%3Dhttp%253A%252F%252Fwww.cd.com %26oauth_consumer_key%3Dab17b706d7320aa3607c8a774954eb495f7cccb3338a1f44ad4396c5a9ff69db%26oauth_nonce%3D5B702F7E46305E3B%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1343032505%26oauth_token%3D1ca90d9a8039ebe04e1c25eec852137b0500d0c4f%26oauth_version%3D1.0").

如何解决这个错误?

【问题讨论】:

    标签: php javascript ios oauth


    【解决方案1】:

    您似乎没有发送您应该在授权步骤中收到的oauth_verifier 参数。即在用户授权您的应用程序后调用您的回调时。这适用于 https://www.rfc-editor.org/rfc/rfc5849#section-2.2 中的最新 OAuth 1.0a 规范。

    另外,不需要在访问令牌请求中发送oauth_callback 参数,这仅在请求令牌步骤中需要。

    【讨论】:

    • 是的,我没有发送 oauth_verifier 参数,因为我没有收到任何参数。回调后我只得到 oauth_token cd.com/?oauth_token=82af5125009056578897fb97bf796e0b0500d13ef
    • 好吧,剩下要做的就是检查创建签名时使用的签名基本字符串,并将其与错误消息进行比较。
    • 签名基本字符串与错误相同。这就是我用来创建签名的方法 "if (function_exists('hash_hmac')) { $signature = base64_encode(hash_hmac("sha1", $base_string, $key, true)); }"
    猜你喜欢
    • 2011-07-09
    • 2016-03-09
    • 2019-06-14
    • 2017-01-03
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 2017-09-02
    相关资源
    最近更新 更多