Facebook的应用程序与铁路/乘客独立/ Nginx …错误的urlcallback!

Rails3与乘客nginx是真棒!

我正在构buildFacebook连接应用程序,我使用omniauth进行身份validation。

我通过在Nginx上使用Passenger来服务我的应用程序。 出于某些原因,我想使用Passenger Standalone来运行应用程序。

它工作正常,当我去/auth/facebook它正常去facebook并请求许可。 但是当它进入callbackurl时,url就是意想不到的!

 http://xyz.com:12148/auth/facebook/callback 

如何弄清楚redirect到一个没有端口号的url..使处理进行得很顺利!

Nginxconfiguration

 upstream xyz_upstream { server unix:/tmp/xyz.socket; } server { listen 80; server_name xyz.com; root /home/deploy/apps/rails3/xyz/public; location / { proxy_pass http://xyz_upstream; proxy_set_header Host $host; } } 

应用程序运行良好,但这是我唯一的问题!

你应该看看这个: 覆盖omniauth回调url

从上面张贴的链接使用以下的工作

(在config / initializers / omniauth.rb中)

 OmniAuth.config.full_host = "http://practicallygreen.com" 

我的工作方式是在每个环境中设置一个名为DOMAIN的全局变量。 它可以在所有环境中工作,以便每次更换环境时都不会中断或需要更改。 我的例子如下

(在config / initializers / omniauth.rb中)

 OmniAuth.config.full_host = DOMAIN 

(在config / environments / production.rb中)

 DOMAIN = "http://xyz.com" 

(在config / environments / staging.rb中)

 DOMAIN = "http://staging.xyz.com"