【问题标题】:Sails.js + passport behind Nginx proxySails.js + Nginx 代理背后的护照
【发布时间】:2014-12-09 02:21:32
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    答案很简单,但没有很好的文档记录。还有另一个帖子实际上谈到了一个稍微不同的问题,但导致了正确的答案: 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

    【讨论】:

    • /* 例如 local.js */ module.exports = { proxyHost: 'some.domain' };
    猜你喜欢
    • 2014-12-23
    • 2011-08-29
    • 1970-01-01
    • 2021-03-13
    • 2015-07-15
    • 1970-01-01
    • 2017-08-14
    • 2022-06-23
    • 2019-03-14
    相关资源
    最近更新 更多