Omniauth-twitter с Rails 5 перестали работать! OAuth :: Несанкционированное 403 Запрещено

Все прекрасно работало, и Омняут внезапно прекратил работать. Я не делал никаких изменений кода.

Я проверил настройки Twitter Apps: у меня есть URL-адрес обратного вызова для моего основного производственного URL-адреса, а URL-адрес обратного вызова заблокирован до номера. Все ключи верны.

Любая идея? 🤔


OAuth :: Несанкционированное

403 Запрещено

enter image description here

Ответ 1

Я смог его решить (также для разработки), добавив эти URL:

Для производства:

  • https://mydomain/users/auth/twitter/callback
  • http://mydomain/users/auth/twitter/callback

Для развития:

  • http://localhost:3000/users/auth/twitter/callback

Ответ 2

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

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

Для получения дополнительной информации проверьте: https://twittercommunity.com/t/action-required-sign-in-with-twitter-users-must-whitelist-callback-urls/105342

Ответ 3

Добавление второго URL-адреса обратного вызова в https://mysitecom/auth/twitter/callback исправил проблему (на данный момент)

----

Обновление: это фактически решило проблему примерно за 10 минут. Испытывать ту же проблему сейчас

Ответ 4

Я работаю в разработке не по производству и столкнулся с этой проблемой, используя драгоценные камни omniauth и omniauth-twitter. Но с этими двумя URL обратного вызова:

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

проблему можно избежать. Странно, так как учебник RailsApps предупреждает об использовании "localhost" в Twitter.

Ответ 5

Я только что решил проблему, поместив https://domain/oauths/callback в список URL https://domain/oauths/callback. Убедитесь, что вы включили опцию блокировки обратного вызова.

Ответ 6

Это почти наверняка связано с этим изменением: Действие НЕОБХОДИМО - Войти с помощью пользователей Twitter должны включать белый список обратных вызовов.

Из ссылки:

Через 30 дней мы начнем применять белый список таким образом, чтобы любой URL-адрес, не добавленный в белый список, не удался. Это означает, что URL-адреса больше не могут быть программно переопределены при вызовах конечной точки oauth/request_token 112. Предоставляемый параметр callback_url должен соответствовать одному из URL-адресов обратного вызова с использованием белого списка. Хотя мы обычно предоставляем дольше 30-дневного уведомления об изменениях, подобных этому, эта временная шкала позволяет нам продолжать обеспечивать безопасный и безопасный опыт для разработчиков и наших пользователей.

Вы можете добавить обратные вызовы в свой белый список на странице настроек приложений на сайте apps.twitter.com 488.

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

Я не мог заставить это работать в разработке с 127.0.0.1 поэтому я закончил создание записи DNS A, указывающей на 127.0.0.1 (например, dev.example.com), и использовал это в настройках URL- dev.example.com обратного вызова на https://apps.twitter.com.

settings

Ответ 7

Юникодное доменное имя. Twitter дайте мне ошибку: неподдерживаемый формат имени домена. Мне нужно точно совместить URL-адрес обратного вызова, отправить мой сервер и URL-адрес обратного вызова в моем приложении Twitter. Решение: config/initialization/twitter.rb

OmniAuth::Strategies::Twitter.class_eval do
  def callback_url
    return my_custom_twitter_app_callback_url_string_variable
  end
end