OAuth :: Несанкционированный 401 int twitter-omniauth gem - PullRequest
15 голосов
/ 06 декабря 2011

Я пытался аутентифицировать пользователей, используя twitter-omniauth gem в последние дни, но безуспешно. (Аутентификация с фейсбуком работает отлично)

Я продолжаю получать 401 Несанкционированная ошибка.

Я ищу через stackoverflow, но ни один из ответов не может решить мою проблему.

Я попадаю в твиттер, когда пытаюсь http://127.0.0.1/users/auth/twitter. Я вхожу в систему, и я перенаправлен на http://127.0.0.1/users/auth/twitter/callback, и появляется неавторизованная ошибка.

Ниже URL обратного вызова, который я ввел в твиттере

http://127.0.0.1/users/auth/twitter/callback

rake routes выход

new_user_session GET    /users/sign_in(.:format)               {:action=>"new", :controller=>"devise/sessions"}
                user_session POST   /users/sign_in(.:format)               {:action=>"create", :controller=>"devise/sessions"}
        destroy_user_session DELETE /users/sign_out(.:format)              {:action=>"destroy", :controller=>"devise/sessions"}
      user_omniauth_callback        /users/auth/:action/callback(.:format) {:action=>/twitter|facebook/, :controller=>"users/omniauth_callbacks"}
               user_password POST   /users/password(.:format)              {:action=>"create", :controller=>"devise/passwords"}
           new_user_password GET    /users/password/new(.:format)          {:action=>"new", :controller=>"devise/passwords"}
          edit_user_password GET    /users/password/edit(.:format)         {:action=>"edit", :controller=>"devise/passwords"}
                             PUT    /users/password(.:format)              {:action=>"update", :controller=>"devise/passwords"}
    cancel_user_registration GET    /users/cancel(.:format)                {:action=>"cancel", :controller=>"devise/registrations"}
           user_registration POST   /users(.:format)                       {:action=>"create", :controller=>"devise/registrations"}
       new_user_registration GET    /users/sign_up(.:format)               {:action=>"new", :controller=>"devise/registrations"}
      edit_user_registration GET    /users/edit(.:format)                  {:action=>"edit", :controller=>"devise/registrations"}
                             PUT    /users(.:format)                       {:action=>"update", :controller=>"devise/registrations"}
                             DELETE /users(.:format)                       {:action=>"destroy", :controller=>"devise/registrations"}
                       login        /login(.:format)                       {:action=>"login", :controller=>"home"}
                        root        /                                      {:controller=>"home", :action=>"index"}

Если вам понадобится дополнительная информация, я предоставлю. Пожалуйста, помогите мне решить эту проблему.

Ответы [ 6 ]

17 голосов
/ 14 декабря 2011

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

В поле ввода URL-адреса обратного вызова упоминается, что, если оставить его пустым, приложение не будет использовать URL-адреса обратного вызова.

13 голосов
/ 11 декабря 2011

Я почти уверен, что столкнулся с проблемами, когда это происходило с localhost ...

В этой статье говорится, что они это разрешают, но если память мне не изменяет, мне пришлось использовать внешне доступный URL. Когда я тестировал мой oauth, я использовал DynDns и открыл порт в моем роутере.

2 голосов
/ 24 июля 2012

В моем случае я использовал «Токен доступа», и секрет вместо «Ключ потребителя» вызвал эту ошибку.

1 голос
/ 04 июля 2014

Видимо, Твиттер добавил флажок на вкладке Настройки приложения.

В нижней части панели «Сведения о приложении» необходимо установить флажок «Разрешить использовать это приложение для входа в Twitter».

После проверки и ожидания в течение нескольких минут, пока окно оповещения говорит мне, все это начало работать.

1 голос
/ 22 февраля 2014

Я столкнулся с этой проблемой, потому что я поместил свои ключи в свою среду в ~ / .bash_profile, но я никогда не искал ее.Как только я открыл новый терминал, он работал нормально.

1 голос
/ 16 апреля 2013

В моем случае мы использовали гем Timecop, и он вызывал сбой гема omniauth-twitter из-за конфликта с временем локального сервера, установленным timecop.

...