首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Omniauth-Twitter 401未经授权

Omniauth-Twitter 401未经授权
EN

Stack Overflow用户
提问于 2012-06-22 14:51:26
回答 4查看 1.5K关注 0票数 5

我提供了一个指向/auth/twitter的“用twitter登录”链接,这个链接由omniauth gem处理。

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

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

代码语言:javascript
复制
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页面上给出的值相匹配,并且注册的回调是一个有效的地址,并且指向生产服务器。

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

Gemfile如下:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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

服务器在这里的第一行记录正确的密钥和密码。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-16 13:07:48

在我的例子中,问题是服务器时间延迟了大约50分钟,请求被拒绝是因为时间戳太旧。

更新系统时间已修复此问题。

票数 2
EN

Stack Overflow用户

发布于 2013-07-02 17:11:14

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

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

希望这能帮助到某人

票数 1
EN

Stack Overflow用户

发布于 2015-11-23 02:53:17

我的解决方案是,您需要在Twitter.com应用程序管理部分指定一个回调url。https://apps.twitter.com/这也会让本地主机urls正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11151434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档