在rails中创建签名hmac-sha1,用于Magenento集成。

问题描述 投票:0回答:1

所以我想创建一个签名来访问Magento APIs。通过 集成,但我没有得到一个有效的 oauth 签名(Magento使用 oauth1).

在postman中使用相同的时间戳和nonce,我得到了正确的 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

先谢谢你

ruby-on-rails-4 magento2 urlencode hmacsha1 oauth-1.0a
1个回答
0
投票

通常base_string是罪魁祸首。如果你把基本字符串的例子放在这里,我可以进一步帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.