0

2本足の認証でoauthプロバイダーを設定する際に問題が発生しました。

私はoauth-plugingemとoauthgemを使用していますが、「更新」リクエストを除いてすべて正常に動作します。署名検証プロセスは失敗し続けます。

これが私がしていることです:

クライアントでは、私は使用しています

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")

get、post、deleteはすべて認証を通過しますが、更新は失敗します。

サーバー側では、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

signign.verifyは更新要求で失敗し、他の3つの要求を渡します。誰が何が起こっているのか知っていますか?

4

1 に答える 1

1

問題は、パラメータを本体に渡すことです。
paramsをAddressable/uriを使用してURLに移動しましたが、これで問題が修正されました。長さに関しては少し制限がありますが、今のところは問題ありません。

于 2011-03-11T16:40:50.890 に答える