Я использую Rails 6.0.0
, Devise 4.7.1
и omniauth-facebook 5.0.0
.
- Мне удалось заставить omniauth успешно работать с твиттером через
omniauth-twitter
(который, как я заметил, сейчас использует oauth 1.0
вместо oauth 2.0
). - Iтакже удалось заставить omniauth успешно работать с Google через
omniauth-google-oauth2
, который использует oauth 2.0
. - У меня нет такой же удачи с
omniauth-facebook
(который использует oauth 2.0
).
В файле initalizers/devise.rb
находится основная конфигурация для того, чтобыукажите provider
, а затем app_id
и app_secret
для каждого поставщика. Вот что у меня есть (конечно, с заполнителем для реального app_id и секрета):
config.omniauth :facebook, "my-app-id", "my-app-secret-key", scope: "email"
config.omniauth :twitter, "my-app-id", "my-key"
config.omniauth :google_oauth2, "my-client-id", "my-client-seceret"
Опять же, это прекрасно работает с твиттером и гуглом. Но когда я нажимаю ссылку «Войти через Facebook», это показывает это на Facebook:
Я в тупике, потому что знаю, что ввел app ID
правильно. Приложение имеет статус «Живой», а не «Разработка» (для этого мне потребовалось указать URL-адрес Политики конфиденциальности).
Поскольку omniauth-twitter
работает, возникает вопрос, что-то не так со стороны поставщика(facebook) или, возможно, что-то не так с omniauth-facebook
гемом? Конечно: я никогда не исключу, что упускаю что-то очевидное.
Я использую https
для своего приложения (https
теперь, по-видимому, это требование для использования этой услуги с Facebook), так что это тоже не проблема.