【发布时间】:2011-09-01 21:47:43
【问题描述】:
我正在使用 Devise/OmniAuth 和 Koala 构建 Rails 3 应用程序,但出现以下 SSL 错误:
OpenSSL::SSL::SSLError in Users/omniauth callbacksController#facebook
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
导致这个错误的代码是:
@graph = Koala::Facebook::GraphAPI.new(@token)
@friends = @graph.get_connections("me", "friends")
我正在使用带有 OmniAuth 的设计来执行身份验证,这很有效。然后我取回返回的 facebook 令牌,并尝试将其与 Koala 一起使用,如上所示。这就是导致此错误的原因。
值得注意的是,我最初在使用 Devise 和 OmniAuth 时收到了同样的错误。关于这个错误有几个主题,我能够通过设置我的 config/initialisers/devise.rb 来解决它,
config.omniauth :facebook, APPID, APPKEY, {:client_options => {:ssl => {:ca_file => "/opt/local/share/curl/curl-ca-bundle.crt"}}}
我猜我需要为 Koala 提供类似的配置,以便它知道在哪里检索本地 ca_file。不过,我在文档中找不到任何有关如何执行此操作的指示。有关如何执行此操作或如何避免一般错误的任何想法?
我的开发环境是 OSX。
【问题讨论】:
-
我已经使用 MiniFB (github.com/victorcoder/mini_fb) 作为考拉的替代品,到目前为止,我的运气更好。它至少返回数据而不给出 SSL 错误。
标签: ruby-on-rails-3 facebook devise omniauth koala