在 rails 中为 magento 集成创建签名 hmac-sha1
Creating signature hmac-sha1 in rails for magento integration
所以我正在尝试创建签名以通过 集成访问 Magento API ,但我没有获得有效的 oauth
签名(Magento 使用 oauth1
).
在邮递员中使用相同的时间戳和随机数,我得到了正确的 oauth
签名。为什么这不会产生与此等效的签名?
hmac=OpenSSL::HMAC.digest('sha1',secret_key, base_string)
signature = Base64 encode64(hmac)
基础字符串:
oauth_consumer_key=params[:oauth_consumer_key]
oauth_signature_method='HMAC-SHA1'
oauth_nonce=Random.rand(100000).to_s
oauth_timestamp=Time.now.to_i.to_s
oauth_version='1.0'
parameters ='oauth_consumer_key=' +
oauth_consumer_key +
'&oauth_nonce=' +
oauth_nonce +
'&oauth_signature_method=' +
oauth_signature_method +
'&oauth_timestamp=' +
oauth_timestamp +
'&oauth_version=' +
oauth_version
url = "http://localhost/demowebsite/oauth/token/request"
base_string = 'POST&' +CGI.escape(url) + '&' + CGI.escape(parameters)
#as I have no token yet
secret_key = oauth_consumer_secret +'&'+''
#POST&http%3A%2F%2Flocalhost%2Fdemowebsite%2Foauth%2Ftoken%2Frequest&oauth_consumer_key%3Dqv4w11m4o5f8vqx2uhfzovrc6veevg5u%26oauth_nonce%3D94770%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1591680691%26oauth_version%3D1.0
提前致谢
通常 base_string 是罪魁祸首。如果你把样本基础字符串放在这里,我可以进一步帮助你
所以我正在尝试创建签名以通过 集成访问 Magento API ,但我没有获得有效的 oauth
签名(Magento 使用 oauth1
).
在邮递员中使用相同的时间戳和随机数,我得到了正确的 oauth
签名。为什么这不会产生与此等效的签名?
hmac=OpenSSL::HMAC.digest('sha1',secret_key, base_string)
signature = Base64 encode64(hmac)
基础字符串:
oauth_consumer_key=params[:oauth_consumer_key]
oauth_signature_method='HMAC-SHA1'
oauth_nonce=Random.rand(100000).to_s
oauth_timestamp=Time.now.to_i.to_s
oauth_version='1.0'
parameters ='oauth_consumer_key=' +
oauth_consumer_key +
'&oauth_nonce=' +
oauth_nonce +
'&oauth_signature_method=' +
oauth_signature_method +
'&oauth_timestamp=' +
oauth_timestamp +
'&oauth_version=' +
oauth_version
url = "http://localhost/demowebsite/oauth/token/request"
base_string = 'POST&' +CGI.escape(url) + '&' + CGI.escape(parameters)
#as I have no token yet
secret_key = oauth_consumer_secret +'&'+''
#POST&http%3A%2F%2Flocalhost%2Fdemowebsite%2Foauth%2Ftoken%2Frequest&oauth_consumer_key%3Dqv4w11m4o5f8vqx2uhfzovrc6veevg5u%26oauth_nonce%3D94770%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1591680691%26oauth_version%3D1.0
提前致谢
通常 base_string 是罪魁祸首。如果你把样本基础字符串放在这里,我可以进一步帮助你