我正在嘗試使用Omniauth爲Google Apps提供簡單的基本身份驗證。一切工作正常本地(即使是在生產模式),但在Heroku我得到如下:爲什麼在嘗試使用Omniauth + Google Apps時,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證書的錯誤,但是指定了證書文件給fetcher解決了這個問題,而且我仍然得到了超時。
有什麼建議嗎?
更新: 我跟蹤到了OmniAuth的回調處理程序。請求會發送到Google Apps,但回撥控制器有機會執行任何操作之前回撥時間已到。
你可能想嘗試使用2個dynos。 – s84