1

将 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 说它已经超时。有人可以向我提供有关这里发生了什么的线索吗?

4

1 回答 1

1

我最初分别从版本 0.4.7 和 1 升级到带有 Devise 2.0.4 的 OmniAuth 1.1.0,所以我解决这个问题的方法是首先回滚我的更改,然后重做 gems 的更新。我认为是对我的 Gemfile 进行了一些手动修改,才搞砸了这个。

如果您在升级时收到有关机架依赖项的投诉,请尝试从您的 Gemfile 中删除有关 sinatra 的块(不是提到 sinatra 作为依赖项的行,而是提到 sinatra 及其依赖项的块),然后运行捆绑安装或更新什么的。

于 2012-05-26T14:30:45.333 回答