Nginx代理后面的Sails.js +护照

时间:2014-10-14 10:16:48

标签: nginx sails.js passport.js passport-twitter

我已经启动了一个新的Sails.js项目,并希望实现passport-twitter进行身份验证。

使用sails-generator-auth模块正确实现一切,但在Twitter授权后我被重定向到

http://localhost:9090/auth/twitter/callback

Sails在localhost:9090上的nginx后面运行 - 如何覆盖主机名?

到目前为止,我尝试设置app.set(' trust proxy');在config / env / development.js

   http: {
    customMiddleware: function(app) {
      console.log('trust proxy');
      app.enable('trust proxy');
    }
  },

当我举起风帆时,我看到了console.log输出,但它并没有影响重定向。

1 个答案:

答案 0 :(得分:2)

答案很简单,但记录不完整。还有一篇文章实际上讨论了一个稍微不同的问题,但得出了正确的答案: How to get current domain address in sails.js

  

如果您使用的是Sails v0.10.x,则可以使用sails.getBaseurl()来获取应用程序所在的完整协议,域和端口。从Sails v0.10.0-rc6开始,这还会检查sails.config.proxyHost和sails.config.proxyPort,如果您的应用程序正在您的应用程序中,您可以在您的一个配置文件(如config / local.js)中手动设置通过代理服务(例如,如果它部署在Modulus.io上,或通过Nginx服务器代理)。

将sails实例配置为localhost:9090是正确的,但是如果要更改代理后面的主机名/端口,则必须配置proxyHostproxyPort - 这可以完成在任何地方,但最适合local.js