1

ログイン認証に omniauth + Facebook を使用する Rails 3.1 アプリケーションがあります。

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)

localhost:3000/users/auth/facebook を使用するように 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

以前にこの問題に遭遇した人はいますか? キー/シークレットが本番環境で読み取られていないように見えますが、それは私には意味がありません。

4

1 に答える 1

0

問題を「余分な」「?」に突き止めました。その構成でnginxの書き換えで。将来のある時点で他の誰かがこの問題に遭遇した場合に備えて、nginx はあなたが指示したことを正確に実行します。:)

于 2012-07-16T16:59:57.613 に答える