2012-05-23 56 views
1

使用OmniAuth 1.1.0與2.0.4設計我得到試圖連接到Twitter,當這個錯誤:OmniAuth身份驗證失敗!超時:超時::錯誤,執行期滿

Started GET "https://stackoverflow.com/users/auth/twitter" for 127.0.0.1 at 2012-05-23 14:50:23 -0400 
(twitter) Callback phase initiated. 
(twitter) Callback phase initiated. 
(twitter) Authentication failure! timeout: Timeout::Error, execution expired 

然後導致OmniAuth調用

Processing by Users::OmniauthCallbacksController#failure as HTML 

有趣的是,我收到用戶的信息作爲request.env["omniauth.auth"]的一部分。也就是說,request.env包含用戶的真實Twitter個人資料數據 - 儘管OmniAuth稱其超時。有人能提供給我一些關於這裏發生的事情的線索嗎?

回答

1

我最初是從版本0.4.7和1分別升級到OmniAuth 1.1.0和Devise 2.0.4,所以我做了什麼來解決這個問題首先回滾我的更改,然後重做更新寶石。我認爲這是一些手工修補我的Gemfile搞砸了這個。

如果您在升級時收到有關機架依賴關係的投訴,請嘗試從Gemfile中刪除有關sinatra的塊(而不是提及sinatra作爲依賴項的行,而是提及sinatra及其依賴項的塊),然後運行捆綁安裝或更新或其他。