OAuth:: Unauthorized 401 int twitter-omniauth gem

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

Я получаю 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"}

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

Ответы

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

Ответ 6

Очевидно, Twitter добавил флажок на вкладке Настройки приложения.

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

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