OAuth签名验证失败

时间:2011-03-04 23:04:52

标签: ruby-on-rails ruby oauth oauth-ruby

我在使用双腿身份验证设置oauth提供程序时遇到了一些问题。

我正在使用oauth-plugin gem和oauth gem,除了我的“更新”请求之外,一切正常。签名验证过程一直失败。

以下是我正在做的事情:

在客户端,我正在使用

oauth = OAuth::AccessToken.new(OAuth::Consumer.new(app_key, app_secret, :site => @api_endpoint))
oauth.get("http://localhost/api/v1/users/1")
oauth.post("http://localhost/api/v1/users", {:email => "testemail@mysite.com"})
oauth.put("http://localhost/api/v1/users", {:tags => ["some", "new", "tags"]})
oauth.delete("http://localhost/api/v1/users/1")

获取,发布和删除所有认证都很好,但更新失败。

在服务器端,我设置了ClientApplication类

  def self.verify_request(request, options = {}, &block)
    begin
      signature = OAuth::Signature.build(request, options, &block)
      return false unless OauthNonce.remember(signature.request.nonce, signature.request.timestamp)
      value = signature.verify
      value
    rescue OAuth::Signature::UnknownSignatureMethod => e
      false
    end
  end

signature.verify在我的更新请求上失败,并传递其他3个请求。有谁知道发生了什么事?

1 个答案:

答案 0 :(得分:1)

原来问题在于将护身符传递到身体 我使用Addressable / uri将params移动到url中,这解决了问题。 它在长度方面会有一点限制,但现在还可以。