我的OAuth请求签名与我的服务提供商签名不同

我正在使用OAuth1.0a为iPad开发应用程序。 我的问题是我无法获得request_token请求的正确签名。 我想要连接的服务有一个调试工具,可以根据您的OAuth参数检查您应该拥有的签名。 结果是: 我得到了正确的签名基本代码 我得到不同的签名 根据我对OAuth的理解,这意味着: 我的签名算法被窃听(HMAC-SHA1)(但我是从第三方获得的:https://github.com/jdg/oauthconsumer/tree/master/Crytpo/) 服务提供商错了 是否有任何免费的工具,可能是在线的,可以从签名基本代码和密钥中建立签名,以检查谁是对的,谁是错的? 谢谢你的帮助     
已邀请:
为什么不使用全部
OAuthConsumer
而不仅仅是HMAC-SHA1组件?它是经过良好使用的,经过良好测试的代码,可用于许多不同的应用程序。我会说
OAuthConsumer
是“知道的好”。 您的服务提供商似乎不太可能出错(除非您是唯一的客户)。 这就留下了您使用加密代码的方式。 我在OAuth签名中遇到的常见问题: 不排序参数 遗漏了看似不重要的参数 不将参数与基本URL分开 使用错误的HTTP方法 重定向或别名。您连接到server.com但远程端认为自己是api.server.com 您可以做的另一件事是使用相同的客户端代码连接另一个OAuth服务,例如Twitter。如果您的代码可靠地为Twitter生成正确的签名,那么它可能会为任何其他服务做正确的事情。这可能(可能)意味着问题是,正如您所建议的那样,您的服务。我说“可能”,因为每个OAuth实现似乎都有自己的怪癖。     
这不太可能是问题,但尝试使用iOS内置的HMAC方法来生成SHA: http://developer.apple.com/library/ios/#documentation/System/Conceptual/ManPages_iPhoneOS/man3/CCHmac.3cc.html 更有可能的是,您的签名基本字符串实际上是错误的。您确认您的基本字符串符合规范吗?您可以使用一个很好的交互式工具来检查您的请求: http://hueniverse.com/2008/10/beginners-guide-to-oauth-part-iv-signing-requests/     
我已经弄清楚我的问题是什么,我的消费者密钥包含特殊字符('+'和'='),并且使用这些字符,来自我的提供商和OAuth iOS框架的签名是不同的。 我试图看看RFC,试图决定谁是对的,但无法做出决定。因此,我将尝试破解OAuth代码,使其与我的提供商一起使用。一旦找到它,我会在这个页面上分享这个技巧。 所以请注意,特殊字符编码可能会很棘手,如果您对特殊字符应如何编码以签署您的签名库有意见,请随意分享。     

要回复问题请先登录注册