Я предоставляю ссылку «войти через твиттер» на /auth/twitter
, которая ручки omniauth
.
На моем компьютере для разработки это работает нормально, перенаправляя на страницу входа в Twitter и возвращаясь к набору обратного вызова для приложения на dev.twitter.com (http://127.0.0.1:3000/auth/twitter/ Перезвоните).
У меня есть отдельное приложение, зарегистрированное для нашего тестового рабочего сервера, отличающееся только токеном доступа, секретом и обратным вызовом. Доступ к пути /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
. Они совпадают с указанными на странице в Твиттере, а зарегистрированный обратный вызов является действительным адресом и указывает на рабочий сервер.
Что здесь может быть не так? Может ли это быть результатом ограничения скорости?
Далее следует 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
Сервер регистрирует правильный ключ и секрет в первой строке здесь.