こんにちは、私の英語でごめんなさい。私は 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コントローラーの両方で無効にしています。