omniauth с фейсбуком не работает на производстве - PullRequest
3 голосов
/ 12 мая 2011

Я работаю с omniauth в моем приложении rails, у меня есть знак с помощью кнопки Facebook и Twitter, когда я добавляю Facebook на сайт, URL-адрес которого указан как localhost: 3000, все работает, но когда я загружаюс сайта на heroku и переходя по URL-адресу сайта sitename.heroku.com, кнопка входа в систему twiiter работает, но кнопка facebook не работает ...

Ответы [ 2 ]

9 голосов
/ 12 мая 2011

Возможно, вам нужно предоставить нам больше информации (что означает, что кнопка facebook не работает? Вы получаете сообщение об ошибке? Если да, то что? Что говорят ваши журналы?)

НОесть большая вероятность, что это ваша проблема: есть известная проблема с использованием omniauth-аутентификации facebook на heroku.Вам необходимо добавить явную ссылку на файл сертификатов SSL в файле config / initializers / omniauth.rb.Измените вашу конфигурационную строку facebook, чтобы она включала хэш client_options, например:

provider :facebook, 'YOUR_APP_ID', 'YOUR_SECRET_KEY', 
           {:scope => 'PERMISSION_1, PERMISSION_2, PERMISSION_3...', :client_options => {:ssl => {:ca_file => '/usr/lib/ssl/certs/ca-certificates.crt'}}}
3 голосов
/ 25 октября 2012

Если вы хотите провести тестирование на локальном хосте и сохранить свою производственную среду, вы можете:

1 - создание нового приложения Facebook только для целей разработки

2- Установите поле URL сайта на: http://localhost:3000/

3- Затем отредактируйте файл /config/initializers/omniauth.rb, чтобы он соответствовал следующему:

OmniAuth.config.logger = Rails.logger

Rails.application.config.middleware.use OmniAuth::Builder do
  if Rails.env.development?
    OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
    provider :facebook, 'DEV_APP_ID', 'DEV_APP_SEVRET'
  else
    provider :facebook, 'DEPLOY_APP_ID', 'DEPLOY_APP_SECRET'
  end
end

Наконец, перезапустите rails server, и вы сможете войти через новое приложение.

...