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".
После проверки и ожидания нескольких минут, когда окно предупреждения сообщает мне, что все это начало работать.