【发布时间】:2012-01-28 04:51:11
【问题描述】:
我使用带有 Rails 3.0.9 的 oauth-plugin gem 成功实现了 OAuth。但是,一旦我升级到 Rails 3.1.3,我在尝试获取请求令牌时收到错误消息。
我一直在本地测试
导轨 3.1.3 oauth (0.4.5) oauth 插件 (0.4.0.rc2)
我已将 Rails 应用设置为提供程序
消费者密钥:BkdI1PnzRuvKDw2Qs1wVxtDrtvmqhUgeXLwNpNtm 消费者
秘密:eCY7JFk4vK6IeWXVq7yS3OMVT1XKpVOWOImsy3iw
在控制台中:
ruby-1.9.2-p290 :003 > @consumer = OAuth::Consumer.new
"BkdI1PnzRuvKDw2Qs1wVxtDrtvmqhUgeXLwNpNtm",
"eCY7JFk4vK6IeWXVq7yS3OMVT1XKpVOWOImsy3iw",
{:site => "http://localhost:3000"}
=> #<OAuth::Consumer:0x007fe93d5bcdf8 @key="BkdI1PnzRuvKDw2Qs1wVxtDrtvmqhUgeXLwNpNtm",
@secret="eCY7JFk4vK6IeWXVq7yS3OMVT1XKpVOWOImsy3iw",
@options={:signature_method=>"HMAC-SHA1",
:request_token_path=>"/oauth/request_token",
:authorize_path=>"/oauth/authorize",
:access_token_path=>"/oauth/access_token",
:proxy=>nil,
:scheme=>:header,
:http_method=>:post,
:oauth_version=>"1.0",
:site=>"http://localhost:3000"}>
ruby-1.9.2-p290 :004 > @consumer.get_request_token
OAuth::Unauthorized: 401 Unauthorized
from /Users/donpottinger/.rvm/gems/ruby-1.9.2-p290@rails3_1/gems/oauth-0.4.5/lib/oauth/consumer.rb:219:in `token_request'
from /Users/donpottinger/.rvm/gems/ruby-1.9.2-p290@rails3_1/gems/oauth-0.4.5/lib/oauth/consumer.rb:139:in `get_request_token'
from (irb):4
from /Users/donpottinger/.rvm/gems/ruby-1.9.2-p290@rails3_1/gems/railties-3.1.3/lib/rails/commands/console.rb:45:in `start'
from /Users/donpottinger/.rvm/gems/ruby-1.9.2-p290@rails3_1/gems/railties-3.1.3/lib/rails/commands/console.rb:8:in `start'
from /Users/donpottinger/.rvm/gems/ruby-1.9.2-p290@rails3_1/gems/railties-3.1.3/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
【问题讨论】:
-
这意味着无效的OAuth请求,你能验证一切是否正确,如秘密/api密钥和客户端令牌
-
请检查 401 oauth.net/core/1.0a/#http_codes 的原因
-
我已经仔细检查了密钥和秘密,并在多个帐户上进行了尝试。我在同一个应用程序的 Rails 3.0.9 版本上实现了这个,它按预期工作。我读到如果服务器时间关闭,它可能会导致 401 错误。但是,错误消息没有给出 401 错误的原因。
-
我唯一能想到的是导致此错误的 Rails 3.0.9 和 3.1 之间发生了一些变化。
-
撞,有人知道会发生什么吗?
标签: ruby-on-rails ruby-on-rails-3 oauth ruby-on-rails-3.1 oauth-ruby