van*_*san 6 facebook devise omniauth ruby-on-rails-3 koala
我正在使用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.
来自Koala repo https://github.com/arsduo/koala
您可以在Koala初始化程序中进行设置,该初始化程序将全局设置此选项
/config/initializers/koala.rb
Koala.http_service.http_options = {
:ssl => { :ca_path => "/etc/ssl/certs" }
}
Run Code Online (Sandbox Code Playgroud)
小智 1
正如我在此线程中发现的,您可以在环境文件(或使用 gem 的类)中设置以下选项:
Koala.http_service.ca_file = '/path/to/some/ca-certificate.crt'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1940 次 |
| 最近记录: |