Как разрешить клиентам доступ к SaaS с использованием имени своей организации в домене?
Например, веб-приложение example.com может иметь 2 клиента, OrgA и OrbB.
После входа в систему каждый клиент перенаправляется на свой сайт, orga.example.com/orgb.example.com.
Как только запрос, который включает субдомен, достигнет сервера node, я надеюсь обработать запрос с помощью одного маршрута '/'. Внутри обработчика маршрутов он просто проверяет заголовок хоста и рассматривает субдомен как параметр для организации. Что-то вроде:
app.get "/*", app.restricted, (req, res) ->
console.log "/* hit with #{req.url} from #{req.headers.host}"
domains = req.headers.host.split "."
if domains
org = domains[0]
console.log org
# TODO. do something with the org name (e.g. load specific org preferences)
res.render "app/index", { layout: "app/app" }
NB. Первым элементом массива доменов является имя организации. Я предполагаю, что ни один порт не появляется в заголовке хоста, и пока я не рассматриваю, как обрабатывать неабонентские поддомены (например, www, blog и т.д.).
Поэтому у меня есть вопрос о том, как node/express можно настроить для обработки запросов с разными заголовками хостов. Это обычно решается в Apache с использованием подстановочного псевдонима или в IIS с использованием заголовка узла.
Пример Apache/Rails - это @http://37signals.com/svn/posts/1512-how-to-do-basecamp-style-subdomains-in-rails
Как это можно сделать в node?