ruby-on-rails - OmniAuth 无效响应错误

标签 ruby-on-rails devise omniauth

我将 OmniAuth 与 Devise 结合使用,以允许用户使用 facebook 登录或使用用户名和密码创建普通帐户。当我最初设置它时,我使用了来自 Railscasts 的优秀指导。 .在 2 个多月的时间里,一切都运行良好,但就在前几天,facebook 登录停止工作了。 OmniAuth 将您发送到 facebook 的身份验证,然后返回:http://localhost:3000/auth/failure?message=invalid_response

Google 没有关于导致此错误的原因或如何修复它的建议,OmniAuth 文档也没有。我也尝试过挖掘他们的代码,但我发现的这个错误的唯一提及是在 /oa-oauth/lib/omniauth/strategies/oauth.rb 中:

rescue ::MultiJson::DecodeError => e
  fail!(:invalid_response, e)
end

有没有人见过这个错误!?知道它是什么或如何解决它?!这使我无法启动此应用程序,因此非常感谢任何帮助!

谢谢, JG

最佳答案

我在同样的情况下遇到过这个错误。 Devise 正在拯救一个不相关的异常并将其作为身份验证失败处理。我通过处理 Controller 中的异常抢占了 Devise:

  # authentications_controller.rb
  def create
    omniauth = request.env["omniauth.auth"]
    # Blah
    # blah
    # Blark!
  rescue Exception => e
    # Just spit out the error message and a backtrace.
    render :text => "<html><body><pre>" + e.to_s + "</pre><hr /><pre>" + e.backtrace.join("\n") + "</pre></body></html>"

关于ruby-on-rails - OmniAuth 无效响应错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5528107/

相关文章:

ruby-on-rails - 带有状态的 Rails 渲染模板

devise - 如何为编辑操作指定 devise_parameter_sanitizer?

ruby-on-rails - Rails after_create proc 没有给出接收者

ruby-on-rails - 您如何使用 rspec 测试 omni-auth facebook?

ruby-on-rails - Rails API Omniauth

ruby-on-rails - omn​​iauth-facebook 无法获取电子邮件地址

ruby-on-rails - 在 rails 4.2 中从网络上的另一台机器访问本地主机

ruby-on-rails - 未初始化常量 ExecJS::Runtimes::RubyRacerRuntime

ruby-on-rails - 激活摘要未保存到数据库

ruby-on-rails - Rspec-设计-rails : User session