2012-07-14 26 views
1

我有一個Rails 3.1應用程序,它使用omniauth + Facebook進行登錄驗證。Rails omniauth + Facebook通過http進行開發,但未通過HTTPS進行開發

omniauth (1.1.0) 
    hashie (~> 1.2) 
    rack 
omniauth-facebook (1.2.0) 
    omniauth-oauth2 (~> 1.0.0) 
omniauth-oauth2 (1.0.0) 
    oauth2 (~> 0.5.0) 
    omniauth (~> 1.0) 

當我將Facebook設置設置爲使用localhost:3000/users/auth/facebook時,它效果很好。當我將代碼部署到生產環境中時,它根本不起作用。主要區別在於本地,我只使用HTTP,並且在生產中Nginx被配置爲強制HTTPS(通過重定向)。

initializers/devise.rb 
config.omniauth :facebook, '1705xxxxxxxxx586', '173b59ba3xxxxxxxxxxxx893e2e697', :scope => 'email,user_birthday' 

initializers/omniauth.rb 
Rails.application.config.middleware.use OmniAuth::Builder do 
    #provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'] 
    provider :facebook, '1705xxxxxxxxx586', '173b59ba3xxxxxxxxxxxx893e2e697', 
     :scope => 'email,user_birthday', 
     :client_options => {:ssl => {:ca_path => '/etc/nginx/certs/cacert.pem'}} 
end 

有沒有人遇到過這個問題?看起來好像沒有在生產中讀到鑰匙/祕密,但這對我來說沒有任何意義。

+0

您的SSL證書是否有效?究竟發生了什麼問題?服務器日誌中的任何錯誤? – Lix 2012-07-14 21:49:07

+0

SSL證書是自簽名的,但是有效。 (臉譜)請求階段啓動。 (臉譜)回調階段啓動。 (臉書)身份驗證失敗! invalid_credentials:OAuth2 ::錯誤,OAuth2 ::錯誤 – QuietFoundation 2012-07-14 22:07:39

+0

用戶處理:: OmniauthCallbacksController#失敗爲HTML,---這是在production.log中 – QuietFoundation 2012-07-14 22:09:19

回答

0

我們將問題追溯到「額外」「?」在其配置中的nginx重寫。如果其他人在將來的某個時刻出現這種麻煩,nginx會按照您的要求去做。 :)

相關問題