В meteor как изменить ROOT_URL среды разработки при разработке по локальной сети

У меня есть метеор в ящике linux, который я разрабатываю через SSH на ноутбуке Windows. Для простых приложений я могу просто заменить lan-адрес (10.0.1.101:3000) на localhost: 3000 в браузере (windows), и он работает.

Но работая через учебник, который использует oauth w twitter, кажется, что meteor hardcodes ROOT_URL является локальным хостом, когда в среде разработки отправляет его в twitter.js. Это происходит, хотя в dev.twitter.com я дал URL обратного вызова как

http://10.0.1.101:3000/_oauth/twitter?close. 

Есть ли способ разработать на машине, которая не является локальным хостом?

Ответы

Ответ 1

Перед запуском метеор необходимо установить переменную окружения:

ROOT_URL=http://10.0.1.101:3000 meteor

Ответ 2

Для меня это работает путем перехвата запроса и проверки имени хоста запроса, но это может не сработать для условий гонки, так как я не знаю, является ли это безопасным для процесса:

WebApp.rawConnectHandlers.use((req, res, next) => {
      var match: any
      if(
        req.url.startsWith('/_oauth/facebook') &&
        (match = req.headers.host.match(/([a-zA-Z0-9-]+)\.domain.com/))
      ) {
        Meteor.absoluteUrl.defaultOptions.rootUrl
          = process.env.ROOT_URL
          = match[0]
      }

      next()
    })

Моя проблема заключалась в том, чтобы заставить oauth работать для нескольких доменов.