Разработать, Omniauth и Twitter - PullRequest
3 голосов
/ 17 августа 2011

Я работаю над приложением Rails 3, которое использует devise и omniauth и следовало примерам, приведенным в https://github.com/plataformatec/devise/wiki/OmniAuth%3A-Overview, и оно работало хорошо для учетных записей Facebook, но когда я попытался добавить Twitter авторизацию, я получил '401 Несанкционированный ответ. Чтобы отследить проблему, я переключил URL-адрес api.twitter.com на http и сбросил сетевой трафик, и, похоже, он дважды размещается в / oauth / access_token. Первый раз, когда я получаю ответ 200, второй дает 401. В промежутке он успешно получает информацию о пользователе для аутентифицированного пользователя, используя метод 'GET /1/account/verify_credentials.json'. Я не понимаю, почему код вызывает метод access_token во второй раз.

В моем файле config / initializers / devise.rb я добавил:

config.omniauth :twitter, "consumer_key", "consumer_secret"

в дополнение к остальному коду, описанному на странице обзора Omniauth выше.

Я также добавил метод 'twitter' в свой OmniauthCallbacksController, но он никогда не вызывается из-за 401.

Любая помощь будет высоко ценится.

Ответы [ 5 ]

7 голосов
/ 15 сентября 2011

Попробуйте заполнить Callback URL в настройках вашего приложения на dev.twitter.com. Должно быть что-то вроде этого:

URL обратного вызова http://yousite.com/auth/twitter/callback

3 голосов
/ 24 сентября 2011

Не уверен, поняли ли вы это в конце или нет - но Twitter не поддерживает localhost доменов.

Вы можете обойти это, установив локальный псевдоним в /etc/hosts, а затем введя его в URL обратного вызова в Twitter или разместив свой сайт на внешнем сервере.

Как и выше - обратный вызов должен быть в формате:

http://mysite/auth/twitter/callback

2 голосов
/ 26 ноября 2011

Используете ли вы omniauth-twitter gem ??

Проблема может быть из-за URL обратного вызова.

в режиме разработки вы можете выбрать URL обратного вызова как

http://127.0.0.1:3000/auth/twitter/callback

0 голосов
/ 19 июня 2012

Я столкнулся с точно такой же проблемой, но в итоге заставил это работать, удалив файл config/initializers/omniauth.rb.Это удваивает количество запросов, потому что вы настроили это в config/initializers/devise.rb

0 голосов
/ 20 марта 2012

Я сталкиваюсь с той же проблемой, потому что включить: подтверждаемый Я решил пропустить подтверждение для других пользователей: auth.user.skip_confirmation!И это решило мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...