Я пытаюсь использовать Omniauth для обеспечения простой базовой аутентификации на основе Служб Google.Все отлично работает локально (даже в производственном режиме), но на Heroku я получаю следующее:
app[web.1]: Started GET "/auth/admin" for 24.155.228.161 at Fri Jul 22 15:10:26 -0700 2011
heroku[router]: Error H12 (Request timeout) -> GET example.com/auth/admin dyno=web.1 queue= wait= service=30000ms status=503 bytes=
heroku[router]: Error H12 (Request timeout) -> GET example.com/ dyno=web.1 queue= wait= service=30000ms status=503 bytes=0
app[web.1]: Generated checkid_setup request to https://www.google.com/a/example.com/o8/ud?be=o8 with assocication AOQobUegRUNfEpz1JOO2bZe0zXrjkdIvdsjpVyCh3rtbL_s-GSfhQ_zY
Моя установка следующая;
# initializers/omniauth.rb
require "openid/fetchers"
OpenID.fetcher.ca_file = "#{Rails.root}/cacert.crt"
require 'openid/store/filesystem'
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_apps, OpenID::Store::Filesystem.new('./tmp')
use OmniAuth::Strategies::GoogleApps, OpenID::Store::Filesystem.new('./tmp'), :name => 'admin', :domain => 'bcarc.com' #, :client_options => {:ssl => {:ca_file => './cacert.crt'}}
end
Я пытался переключиться на memcached, но не могу заставить работать memcached-northscale
или dalli
, и в любом случае я убедился, что одноразовые номера сохраняются в ./tmp
правильно, поэтому я не думаю, что это проблема.
Я получил ошибку о сертификатах CA, но указание файла сертификатов для средства извлечения решило это, и я все еще получаю тайм-аут.
Есть предложения?
ОБНОВЛЕНИЕ: я отследил это до обработчика обратного вызова OmniAuth.Запрос отправляется в Службы Google, но время обратного вызова истекает до того, как контроллер обратного вызова сможет что-либо сделать.