私はOmniauthを使用して、Google Appsに対して簡単で基本的な認証を提供しようとしています。すべてはローカルで(プロダクションモードでも)うまく動作しますが、Herokuでは次のようになります。Omniauth + Google Appsを使用しようとすると、なぜヒロクがタイムアウトしますか?
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 Appsに送信されますが、コールバックコントローラーが何かを実行する前にコールバックがタイムアウトします。
2dynosを試してみてください。 – s84