2

こんにちは、私の英語でごめんなさい。私は oauth 0.4.4 と oauth-plugin 0.4.0.pre4 gem を使用しています。OAuth プロバイダーとしてアプリにアクセスしようとすると

     8 消費者 = OAuth::Consumer.new consumer_key, consumer_secret,
      9 :site => 'http://localhost:3000/', :scheme => :body
     10
     11 request_token = consumer.get_request_token
消費者が例外を発生させる
    /home/lain/.rvm/gems/ruby-1.9.2-p136/gems/oauth-0.4.4/lib/oauth/consumer.rb:217:in get_request_token'token_request': 401 Unauthorized  (OAuth::Unauthorized)
        from /home/lain/.rvm/gems/ruby-1.9.2-p136/gems/oauth-0.4.4/lib/oauth/consumer.rb:139:in
        private/test_app.rb:11:in `' から

このリクエストのRailsログは

2011-02-22 21:17:54 +0300 で 127.0.0.1 の POST "/oauth/request_token" を開始しました
  OauthController#request_token による処理 */*
  パラメータ: {"oauth_body_hash"=>"2jmj7l5rSw0yVb/vlWAYkK/YBwk=", "oauth_callback"=>"oob", "oauth_consumer_key"=>"GAdP34UY4zunPwhm9hePODITteHxplQ3oShNPuKs", "oauth_signature_method"=>"HMAC-SHA1", "=oauth_times" >"1298398673", "oauth_nonce"=>"aDRQijPyYJYODaqdZvpD2RMrReixMVcWb0zYSpjI", "oauth_version"=>"1.0", "oauth_signature"=>"0kYXwbPnNZK7JLpVVtnLs+H5klQ="}
レンダリングされたテキスト テンプレート (0.0ms)
401 Unauthorized を 10 ミリ秒で完了 (ビュー: 2.7 ミリ秒 | ActiveRecord: 0.0 ミリ秒)

curl を使用してこのリクエストをシミュレートしようとすると、次のようになります

$ curl 'http://127.0.0.1:3000/oauth/request_token' -d 'oauth_body_hash=2jmj7l5rSw0yVb%2fvlWAYkK%2fYBwk%3d&oauth_callback=oob&oauth_consumer_key=GAdP34UY4zunPwhm9hePODITteHxplQ3oShNPuKs&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1298398673&oauth_nonce=aDRQijPyYJYODaqdZvpD2RMrReixMVcWb0zYSpjI&oauth_version=1.0&oauth_signature=0kYXwbPnNZK7JLpVVtnLs%2bH5klQ%3d ' -v
* connect() を 127.0.0.1 ポート 3000 (#0) にしようとしています
* 127.0.0.1 を試行中... 接続済み
※127.0.0.1(127.0.0.1)ポート3000(#0)に接続
> POST /oauth/request_token HTTP/1.1
> ユーザーエージェント: curl/7.19.7 (i486-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
> ホスト: 127.0.0.1:3000
> 受け入れる: */*
> コンテンツの長さ: 309
> コンテンツ タイプ: application/x-www-form-urlencoded
>
< HTTP/1.1 401 無許可
< Access-Control-Allow-Origin: *
< コンテントタイプ: text/html; 文字セット=utf-8
< キャッシュ制御: キャッシュなし
< X-Ua対応: IE=Edge
< X-ランタイム: 1.245471
< サーバー: WEBrick/1.3.1 (Ruby/1.9.2/2010-12-25)
< 日付: 2011 年 2 月 22 日 (火) 23:57:49 GMT
< コンテンツの長さ: 21
< 接続: キープアライブ
<
* ホスト 127.0.0.1 への接続 #0 はそのまま残されます
* 接続 #0 を閉じる
無効な OAuth リクエスト

私のデータベースには 1 つの ClientApplication が含まれています

   ruby-1.9.2-p136 :001 > ClientApplication.all.to_a
     => [#<ClientApplication _id: 4d62f535e4279b2dec000001、created_at: 2011-02-21 23:28:53 UTC、updated_at: 2011-02-21 23:28:53 UTC、名前: "..."、url: ". .."、support_url: なし、callback_url: なし、キー: "GAdP34UY4zunPwhm9hePODITteHxplQ3oShNPuKs"、シークレット: "EQAD5fifIuC3qtAyrkIpqAEn39rK50Az55gxbVYD"、user_id: なし>]

oauth と oauth-plugin の多くのバージョンを試しましたが、成功した結果は得られませんでした。「 oauthテスト」でググった 2 つのテスト コンシューマーは、同じ結果を示してい ます。

私はdevise 1.2.rcを使用していますがskip_before_filter :authenticate_user!、アプリケーションとOauthコントローラーの両方で無効にしています。

4

0 に答える 0