5

我提供了 gem 处理的“使用 twitter 登录”/auth/twitter链接omniauth

在我的开发机器上,这似乎工作正常,重定向到 twitter 登录页面并返回到 dev.twitter.com (http://127.0.0.1:3000/auth/twitter/callback) 上为应用程序设置的回调。

我为我们的测试生产服务器注册了一个单独的应用程序,唯一不同的是访问令牌、秘密和回调。访问/auth/twitter生产服务器上的路径会导致

OAuth::Unauthorized (401 Unauthorized):
  oauth (0.4.6) lib/oauth/consumer.rb:216:in `token_request'
  oauth (0.4.6) lib/oauth/consumer.rb:136:in `get_request_token'
  ...

我已经确保服务器确实在使用我的开发密钥/秘密,方法是打印用于日志的那些,因为它们被设置在/config/initializers/omniauth.rb. 它们与 twitter 页面上给出的匹配,注册的回调是一个有效地址并指向生产服务器。

这里可能有什么问题?这可能是速率限制的结果吗?

宝石文件如下:

source 'https://rubygems.org'

gem 'rails', '3.2.3'

gem 'mysql2','0.3.11'

gem 'tweetstream'
gem 'koala'

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'twitter-bootstrap-rails'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

gem 'twitter'
gem 'omniauth-twitter'
gem 'omniauth-facebook'
gem 'thin'

/config/initializers/omniauth.rb:

puts "initializing twitter with #{TWITTER_KEY}, #{TWITTER_SECRET}"
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, TWITTER_KEY, TWITTER_SECRET
  provider :facebook, FACEBOOK_KEY, FACEBOOK_SECRET,
        :scope => 'read_stream,publish_stream'
end

服务器在此处的第一行记录正确的密钥和秘密。

4

4 回答 4

2

就我而言,问题是服务器时间晚了大约 50 分钟,并且请求被拒绝,因为时间戳太旧了。

更新系统时间修复了它。

于 2012-07-16T05:07:48.220 回答
1

不要忘记检查 twitter 设置中的复选框:

“允许使用此应用程序通过 Twitter 登录”

希望这可以帮助某人

于 2013-07-02T09:11:13.867 回答
0

我的解决方案是您需要在 Twitter.com 应用程序管理部分指定回调 url。 https://apps.twitter.com/ 这将使 localhost url 也能正常工作。

于 2015-11-22T18:53:16.720 回答
0

我的问题是我检查了“回调网址锁定”。只是在它工作时取消选中它。

于 2015-12-24T12:16:52.747 回答