Сбой проверки подписи OAuth - PullRequest
0 голосов
/ 05 марта 2011

У меня возникли некоторые проблемы при настройке oauth-провайдера с двухсторонней аутентификацией.

Я использую гем oauth-plugin и гем oauth, все работает нормально, за исключением моих запросов на обновление,Процесс проверки подписи продолжает терпеть неудачу.

Вот что я делаю:

В клиенте я использую

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 Ответ

1 голос
/ 11 марта 2011

Оказывается, проблема в том, чтобы передать параметры через тело.
Я переместил параметры в URL с помощью Addressable / uri, и это решило проблему.Это будет немного ограничивать с точки зрения длины, но пока нормально.

...