лучший подход для мультитенантного приложения SaaS

Я пытаюсь создать мультитенантное SaaS-приложение, и я знаю, что есть несколько подходов к этому, но я выбрал мульти-базу данных, которая, я думаю, подойдет больше всего.

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

Теперь моя проблема здесь, где хранить пользователей, в основной БД? или база данных арендатора, хранение пользователей в основной базе данных, затруднит получение моделей, связанных с пользователями, в другие базы данных, но хранение ее внутри базы данных арендаторов затруднит проверку подлинности для всех пользователей …

и каков лучший сценарий?

  1. аутентифицируйтесь, получите токен JWT.
  2. отправлять токен с каждым запросом.
  3. при каждом запросе проверяйте токен, проверяйте поддомен, подключайтесь к соответствующему дБ арендатора, выполняйте запрос.

это хороший подход? Что мне делать с проблемой таблицы пользователей?
ThnQ

3

Решение

Я могу предложить третий вариант. Иметь пользователя как в арендаторе, так и в основной базе данных. Затем вы можете создать процедуру для обновления основной базы данных при изменении пользователем базы данных арендатора (или наоборот).

Кроме того, я не знаю моделей в Laravel, но у MySQL нет проблем с межсоединениями между базами данных.

0

Другие решения

Хорошим вариантом будет сохранение пользователей в базе данных арендаторов. Поскольку вы отличаете своего арендатора от субдомена, вы можете указать системе аутентификации запрашивать базу данных, специфичную для субдомена.

Обмен потоком аутентификации

  1. Пользователь нажимает на поддомен для входа в приложение
  2. Учетные данные пользователя будут отправлены в приложение
  3. Прежде чем передавать учетные данные для аутентификации, определите базу данных для аутентификации пользователя, основываясь на поддомене, из которого пришел пользователь.
  4. Передать имя базы данных, учетные данные пользователя в систему аутентификации
  5. Система аутентификации запрашивает конкретную базу данных и аутентифицирует пользователя
  6. Создать сессию
0

По вопросам рекламы [email protected]