Как можно разрешить клиентам доступ к SaaS, используя имя своей организации в домене?
Например, веб-приложение example.com может иметь двух клиентов, OrgA и OrbB.
После входа в систему каждый клиент перенаправляется на свой сайт orga.example.com / orgb.example.com.
Как только запрос, включающий поддомен, достигнет сервера узла, я надеюсь обработать запрос с помощью одного маршрута '/'. Внутри обработчика маршрута он просто проверяет заголовок хоста и рассматривает поддомен как параметр для организации. Что-то вроде:
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
Как может быть то же самое? достигнуто в узле?