簡體   English   中英

Omniauth-Twitter 401未經授權

[英]Omniauth-Twitter 401 Unauthorized

我正在提供一個“登錄twitter”鏈接到/auth/twitteromniauth gem處理這個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頁面上給出的匹配,並且注冊的回調是有效地址並指向生產服務器。

這可能有什么問題? 這可能是速率限制的結果嗎?

Gemfile如下:

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

服務器在此處的第一行記錄正確的密鑰和密鑰。

在我的情況下,問題是服務器時間落后大約50分鍾,並且請求被拒絕,因為時間戳太舊了。

更新系統時間修復了它。

不要忘記檢查Twitter設置中的復選框:

“允許此應用程序用於使用Twitter登錄”

希望這有助於某人

我的解決方案是你需要在Twitter.com應用程序管理部分指定一個回調網址。 https://apps.twitter.com/這將使localhost網址也能正常運行。

我的問題是我檢查了“Callback Url locking”。 只是取消了它的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM