У меня есть приложение Ruby on Rails, которое использует devise, а user
имеет атрибут omniauthable
, то есть пользователи могут входить через учетные записи социальной сети (приложение разрешает Google и связанные с ним).Devise omniauth перестала работать по неизвестной причине
Войти через социальные сети работало, пока не попытаюсь настроить подтверждение по электронной почте для регистрации. Теперь любая попытка социальной регистрации вызывает ошибку Invalid credentials
, altough config.omniauth
строк и переменных среды с учетными данными не изменились.
В режиме производства социальная регистрация по-прежнему работает, и я загружаю старый код с сервера (среда разработки и производства использует те же учетные данные). Но это не помогло, и я до сих пор не могу использовать социальные сети для входа в мое приложение в режиме разработки. Я думал, что кеш браузера является причиной этой ошибки, но в других браузерах я видел такое же сообщение об ошибке.
Мой devise.rb
код:
Devise.setup do |config|
config.omniauth :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET']
config.omniauth :linkedin, ENV['LINKEDIN_KEY'], ENV['LINKEDIN_SECRET']
user.rb
:
class User < ActiveRecord::Base
devise :database_authenticatable,
:registerable,
:recoverable,
:rememberable,
:trackable,
:validatable,
:omniauthable,
:omniauth_providers => [
:google_oauth2,
:linkedin
]
правильно понимаю ли я, что учетные данные социальной сети идентификатор приложения и секрет?
Где моя ошибка?
Это не помогло. Насколько я понимаю, ваш ответ решает проблему с получением ключей и секретов. Но когда я отлаживал приложение, '' 'ENV ['LINKEDIN_KEY']' 'и' '' API_KEYS ['linkedin'] ['api_key'] '' 'возвращал те же значения. В обеих версиях разработки и разработки используются те же ключи и секреты, и я уверен, что значения правильны из-за того, что производственный сервер работает правильно. –