2016-10-25 3 views
0

Я уже подготовил WEB-сайт с аутентификацией пользователя. Мне нужно внедрить корпоративные учетные записи, чтобы пользователи этой учетной записи могли перейти по ссылке enterprise_account_name.main_domain.com и видели тот же сайт, что и в main_domain.com, только для этой версии, особенно для них.Как мне использовать корпоративные учетные записи на веб-сайте?

Как это сделать и где копать? (или, по крайней мере, перечень технологий, каркасов):

  1. Один код для всех поддоменов?
  2. Создать отдельную базу данных для каждого поддомена? В то же время вам необходимо получить доступ к данным из main_domain во все поддомены и наоборот (субдомен -> main_domain).
  3. Вероятно, для обновления длинной миграции данных базы данных может потребоваться обновление. Необходимо, чтобы в этом случае все поддомены не застывали до обновленной одной из баз.
  4. Сервер на apache. Этот перезапуск apache при создании бизнес-учетной записи невозможен.
  5. Корпоративные учетные записи создают на веб-интерфейсе main_domain.com (автоматически), как стандартная регистрация пользователя. Не вручную!
  6. Желательно для джанго.
+1

Взгляните на этот вопрос/ответ, который я считаю, будет полезно: http://stackoverflow.com/questions/10738175/pass-subdomain-as-parameter – sberry

+0

я должен упомянуть, вы можете использовать ответ, который я связанных с общей идеей. Вам не нужно передавать значение поддомена в качестве параметра строки запроса. Скорее всего, я бы установил значение в качестве переменной среды для запроса, чтобы он был прозрачным для пользователя. – sberry

+1

Возможно, вас заинтересует [django-tenant-schemas] (https://django-tenant-schemas.readthedocs.io/en/latest/index.html) – devxplorer

ответ

0

Существует django-tenant-schemas package, который, кажется, полностью соответствует вашим потребностям.

Краткое описание того, как это работает (из документации):

Арендаторы идентифицированы с помощью их имени хоста (т.е. tenant.domain.com). Эта информация хранится в таблице в общедоступной схеме. Всякий раз, когда делается запрос, имя хоста используется для сопоставления арендатора в базе данных. Если есть соответствие, путь поиска обновляется, чтобы использовать схему этого арендатора. Поэтому с этого момента все запросы будут проходить по схеме арендатора. Например, предположим, что у вас есть клиент-арендатор по адресу customer.example.com. Любой запрос, поступающий на customer.example.com, автоматически использует схему клиента и делает арендатора доступным по запросу. Если арендатор не найден, возникает ошибка 404. Это также означает, что у вас должен быть арендатор для вашего основного домена, обычно используя общедоступную схему.