Я пытаюсь добиться этого, используя Lumen / Laravel framework в качестве моих базовых технологий, а также используя JWT Authentication для API REST. Функциональность выглядит следующим образом:
Клиентское приложение (веб / мобильное) обслуживается с одного сервера и содержит приложение переднего плана, которое выполняет весь веб-API. запросы
Служба аутентификации находится на сервере (A) . Эта служба (приложение) содержит Таблицу пользователей, которая используется для входа в систему пользователя, роль- управление, регистрация пользователей, отчеты по журналам, а также отслеживание всех проблем аутентификации / администрирования.
Служба UserData на сервере (B) , в которой находится таблица профиля, биография -данные о каждом зарегистрированном пользователе с Сервера A, через внешний ключ (user_id) или иным образом для связи данных
Служба продуктов на Сервере (C) , обрабатывает все связанные с продуктом проблемы, клиентов, заказы, категории - в разных таблицах с помощью ссылки на внешний ключ пользователя на сервере A.
Приложение Blog на сервере (D) , эта служба управляет Сообщения в блоге пользователя, комментарии в блоге и все связанные с блогом проблемы на пользователя - либо с использованием их внешнего ключа (user_id)
Проблема
Вход / Выход выполняется один раз, и пользователь имеет доступ к каждой услуге
Как связать таблицы на сервере A с сервером B, используя внешний ключ для манипулирования данные и через вызовы API
Я использую аутентификацию JWT, Как я могу запустить приложение на другом сервере и сохранить сеанс входа в систему, а также сохранить данные, используя информацию для входа из другой сервис на другой сервис. я вошел в систему на сервере A, я запустил блог на сервере D, сервере D, прочитал информацию о моем входе в систему и о том, как получать сообщения / комментарии пользователей - как если бы это было отношение один ко многим или отношение многие ко многим модель системы.
Поскольку пользователь вошел в систему с сервера A, могу ли я повторить те же таблицы входа в систему на других серверах, чтобы при каждом запуске приложений данные были связаны, и я мог Запускайте запросы на связанных моделях. Помните, что каждое приложение имеет разные установки lumen / laravel. Мне интересно, как я могу общаться с каждым приложением, не повторяя процесс с одного сервера на другом сервере, также напомню, что мне придется получать биоинформацию с сервера B во время всех этих процессов.
Как мне достичь всего этого. Это было бы очень легко с использованием подхода водопада, так как была бы только одна пользовательская таблица, и у пользователя разные отношения, но я пытаюсь разделить проблемы и построить иначе, но теперь я застрял на том, как go об этом.
также, если есть предпочтительный альтернативный метод / метод, я был бы рад узнать. Спасибо.
Пожалуйста, обратитесь к диаграмме ниже