Sails.js + паспорт за прокси Nginx

Я запустил новый проект Sails.js и хочу внедрить passport-twitter для аутентификации.

Все реализовано правильно с помощью модуля sails-generator-auth, но после авторизации в Twitter меня перенаправляют на

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

Sails работает за nginx на localhost:9090 - как мне переопределить имя хоста?

До сих пор я пытался установить app.set("доверенный прокси"); в config/env/development.js

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

Я вижу вывод console.log, когда поднимаю паруса, но это не влияет на перенаправление.

1 ответ

Решение

Ответ прост, но не очень хорошо задокументирован. Есть еще одна публикация, которая на самом деле говорит о слегка другой проблеме, но приводит к правильному ответу: как получить текущий адрес домена в 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).

Правильно настроить экземпляр паруса на localhost:9090, но если вы хотите изменить имя хоста / порт за прокси-сервером, вам необходимо настроить proxyHostа также proxyPort - это может быть сделано где угодно, но наиболее подходит в local.js

Другие вопросы по тегам