小编van*_*san的帖子

在Rails 3应用程序中使用带有Devise和OmniAuth的Koala获取SSL错误

我正在使用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
Run Code Online (Sandbox Code Playgroud)

导致此错误的代码是:

@graph = Koala::Facebook::GraphAPI.new(@token)
@friends = @graph.get_connections("me", "friends")
Run Code Online (Sandbox Code Playgroud)

我正在使用Devise与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"}}} 
Run Code Online (Sandbox Code Playgroud)

我猜我需要为Koala提供类似的配置,以便它知道在哪里检索本地ca_file.我在文档中找不到任何关于如何这样做的说明.有关如何执行此操作的任何想法,或一般如何避免错误?

我的开发环境是OSX.

facebook devise omniauth ruby-on-rails-3 koala

6
推荐指数
2
解决办法
1940
查看次数

标签 统计

devise ×1

facebook ×1

koala ×1

omniauth ×1

ruby-on-rails-3 ×1