我正在使用 magento api 开发电子商务 iOS 应用程序。目前我正在尝试使用 oAuth 身份验证来请求 token 。
我使用以下 header 和它们的参数来验证用户。
Request url =
http://beta.localhost.com/oauth/initiate?oauth_callback='http://localhost/testapp'
OAuth realm="http://beta.localhost.com/",
oauth_consumer_key="pr9vx4i46lc8jv8mmiu6z2w50p9an43x",
oauth_nonce="8QSHUZFRWRC5VGN3", oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1354356514", oauth_version="1.0",
oauth_signature="ucKs4DyFbKv6MJ1l2%2Fx4NvF819A%3D"
我收到错误:
oauth_problem=signature_invalid&debug_sbs=szeWMR2jNONabHyS3Ui7FIF3iPc=
我已经尝试了所有相同的方法,例如 twitter 身份验证,但我正在努力解决同样的问题
我也会尝试将这些方法包含在高级休息客户端中,但我会收到不同的错误消息
我的 Rest 客户端响应页面截图。
通过接收 token 以帮助我继续执行此 magento api 以进行进一步的步骤。
Best Answer-推荐答案 strong>
问题在于 OAuth 签名错误,Magento 错误响应清楚地表明了这一点。
调试签名过程是一个相当困难的过程,要通过 StackOverflow 问题来完成。查找和修复错误的最佳方法是在您自己的计算机上本地执行此操作。您需要通过 Magento 编写签名的方式(检查 Zend_Oauth_Http_Utility::sign() 方法,该方法将引导您进入 Zend_Oauth_Signature_Hmac 类)并逐步比较过程与iOS端的那个。这将帮助您找到差异。
出现此类问题的最常见原因有以下三个:
- 数据部分的错误顺序(在当前情况下 - 您的 'oauth_*' 参数),已处理以获取签名。
- 签名算法错误,自己实现时
- 为了将二进制签名转换为字符串并通过 HTTP 传递而进行了错误的编码
比较 Magento 和 iOS 进程及其中间结果,将帮助您找到它们开始不同的步骤。因此,您将能够理解需要修复的内容。
关于iphone - 适用于 iOS SDK 的 Magento oauth api,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/13658497/
|