将OmniAuth 1.1.0与Devise 2.0.4一起使用我在尝试连接Twitter时遇到此错误:
Started GET "/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说它已超时。有人能给我一个关于这里发生了什么的线索吗?
答案 0 :(得分:1)
我最初使用Devise 2.0.4分别从版本0.4.7和1升级到OmniAuth 1.1.0,所以我解决这个问题的方法是首先回滚我的更改,然后重做宝石的更新。我认为这是一些手动修补我的Gemfile,搞砸了这个。
如果您在升级时遇到有关机架依赖性的抱怨,请尝试从Gemfile中删除有关sinatra的块(不是提及sinatra作为依赖项的行,而是提及sinatra及其依赖项的块)然后运行捆绑安装或更新或其他。