888339de9e7a88688b6acb30d33e66cd

Omniauth 連接 Facebook 會發生 SSLError

2012-03-07 21:47:56 +0800elct9620Gem 節點 中發起
最後由 clc31232012-03-13 10:59:25 +0800回應 , 240次閱讀

今天嘗試做 Facebook 登入功能時,卻發生 SSLError 的錯誤。
實作是參考 Devise 官方 Wiki 上的做法:
http://github.com/plataformatec/devise/wiki/OmniAuth:-Overview

完成之後嘗試登入,就碰上 OpenSSL::SSL::SSLError 的錯誤。
想說可能本機設定有問題,就先傳到 Heroku 看看會不會正常,但也不幸的也是 Error 發生。

仔細查資料後發現文件提到這句:
If your app is running on Heroku (and you have been pulling your hair out for hours), the config section needs to look like this:

所以又照著修改,傳到 Heroku 上面,結果還是發生錯誤。

不知道各位大大有沒有碰過類似情況?
(網路上大部分的方法都嘗試過了,還是沒有成功)

開發環境:
MacOSX Lion
Ruby 1.9.3, Rails 3.2.2

---

剛剛心血來潮想觀察一下 ruby-taiwan 的原始碼,心想既然也是 devise 那麼就看一下設定檔有沒有玄機吧!

然後馬上發現:

module OpenSSL
  module SSL
    remove_const :VERIFY_PEER
  end
end
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

看起來我問題解決了!
(但是又噴出其他錯誤 Orz 看起來是我 method name 打錯)

截至 2012-03-13 10:59:25 +0800,共收到 1 條回應
B666fe91acff572c1b773792bc333d27
clc3123 1樓, 於2012-03-13 10:59:25 +0800回應

可以把证书验证关掉,如果确定资料不是非常重要或者没人搞破坏,这么做也未尝不可。
不知道这是否跟无法找到系统的ca-cert有关,如果在linux下应该都是没问题的。mac或云环境可能要自己设置下ca-cert的位置。

需要 登入 後方可回應,如果你還沒有帳號按這裡 註冊