【问题标题】:OmniAuth Authentication failure! timeout: Timeout::Error, execution expiredOmniAuth 身份验证失败! timeout: Timeout::Error,执行已过期
【发布时间】:2012-05-26 22:30:45
【问题描述】:

将 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 说它已经超时。有人可以告诉我这里发生了什么吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 twitter devise omniauth


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-27
      • 2017-08-27
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 2012-07-11
      • 1970-01-01
      相关资源
      最近更新 更多