我有一个Rails 3.1应用程序,它使用omniauth + Facebook进行登录验证。
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 :(得分:0)
我们将问题追溯到“额外”“?”在其配置中的nginx重写中。如果其他人在将来某个时候遇到这种麻烦,nginx就会完全按照你的要求去做。 :)