Конфигурация Omniauth в секретах рельсов 4

Я пытаюсь настроить различные среды, чтобы я мог проверить вход в Facebook. Производство работает нормально, но у меня проблемы с правильным способом включения моих учетных данных для разработки. Я пытаюсь использовать secrets.yml, поскольку именно это я и использовал для хранения других учетных данных API.

Вот что я получил в инициализаторе omniauth.rb:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_SECRET'],
           :scope => 'email,user_location'
 end

И это в моем файле secrets.yml:

development:
  FACEBOOK_APP_ID: mytestappid
  FACEBOOK_SECRET: mytestsecretkey

production:
  FACEBOOK_APP_ID: <%= ENV["FACEBOOK_APP_ID"] %>
  FACEBOOK_SECRET: <%= ENV["FACEBOOK_SECRET"] %>

Я попытался изменить 'config' на 'секреты' в инициализаторе, но это не сработало. Я подозреваю, что это как-то связано с промежуточным ПО, но я не уверен. Кто-нибудь может помочь мне указать правильную настройку? Производство работает только до н.э. Я устанавливаю переменные конфиг с помощью heroku.

Большое спасибо!

1 ответ

Решение

Вы не читаете файл секретов. Измените ваш omniauth.rb на это:

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, Rails.application.secrets.FACEBOOK_APP_ID, Rails.application.secrets.FACEBOOK_SECRET,
           :scope => 'email,user_location'
end

PS: необходимо перезагрузить сервер после изменений

Другие вопросы по тегам