2

我已经开始了一个新的 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 输出,但它不影响重定向。

4

1 回答 1

2

答案很简单,但没有很好的记录。还有另一篇文章实际上讨论了一个略有不同的问题,但给出了正确的答案: 如何在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

于 2014-10-14T13:01:40.207 回答