【发布时间】:2017-03-17 18:29:04
【问题描述】:
我有一个 Magento 2 与 Wordpress 的集成。我在 Wordpress 中调用需要身份验证的 REST API 调用。我正在使用 OAuth 1.0a。
看起来我在创建 OAuth 签名时遇到了麻烦。 Wordpress 总是返回错误:
string(106) "{"code":"json_oauth1_signature_mismatch","message":"OAuth signature does not match","data":{"status":401}}"
创建 OAuth 签名的代码如下(我基于从 Magento 中找到的代码)
public function buildAuthorizationHeader(
$params,
$requestUrl,
$signatureMethod = self::SIGNATURE_SHA1,
$httpMethod = 'POST'
) {
$headerParameters = [
'oauth_nonce' => $this->_nonceGenerator->generateNonce(null),
'oauth_timestamp' => $this->_nonceGenerator->generateTimestamp(),
'oauth_version' => '1.0',
'oauth_signature_method' => $signatureMethod
];
$headerParameters = array_merge($headerParameters, $params);
$headerParameters['oauth_signature'] = $this->_httpUtility->sign(
$params,
$signatureMethod,
$headerParameters['oauth_consumer_secret'],
$headerParameters['oauth_token_secret'],
$httpMethod,
$requestUrl
);
$authorizationHeader = $this->_httpUtility->toAuthorizationHeader($headerParameters);
$authorizationHeader = str_replace('realm="",', '', $authorizationHeader);
return $authorizationHeader;
}
关于我可能做错了什么的任何线索。
提前致谢,
【问题讨论】:
标签: php wordpress magento oauth