Приложение для нескольких клиентов - PullRequest
0 голосов
/ 02 июля 2019

Я разрабатываю платформу, которая содержит различные приложения, в основном:

  • Приложение административного использования.
  • Приложение клиентского использования.
  • Некоторые мобильные приложения

Сначала я сосредотачиваюсь на делении вещей по поддоменам, например:

- https://login.mydomain.com => Login application for all users of the platform, (Uses IdentityServer 4, ASP CORE)
- https://root.mydomain.com => Administrative application (SPA)
- https://root.mydomain.com/api => API for administrative application (ASP Core)
- https://client1.mydomain.com => Client 1 Web Application 1 (SPA)
- https://client1.mydomain.com/api => API for client 1 web application (ASP Core)
- https://client2.mydomain.com => Client 2 Application  (SPA)
- https://client2.mydomain.com/api => API for client 2 web application (ASP Core)

Принимая во внимание, что веб-приложение клиента 1 и клиента 2 одинаково (изменения доступа к данным), то же самое происходит с API.

Этот подход очень усложняет сертификаты https, перенаправления OAuth2, перенаправления IdentityServer и т. д.

, с помощью которых вы выбираете разделение приложений.в поддоменах и клиентах в маршрутах:

- https://login.mydomain.com => Login application for all users of the platform, (Uses IdentityServer 4, ASP CORE)
- https://root.mydomain.com => Administrative Application (SPA)
- https://root.mydomain.com/api => API for administrative application (ASP Core)
- https://app.mydomain.com/client1 => Client 1 Web Application (SPA)
- https://app.mydomain.com/client1/api => API for client 1 web application (ASP Core)
- https://app.mydomain.com/client2 => Client 2 Web Application (SPA)
- https://app.mydomain.com/client2/api => API for Client 2 web application (ASP Core)

Это привело меня к серии сомнений:

  • Рекомендуется, чтобы у каждого клиента был свой URL API(client1 / api, client2 / api) или я могу просто использовать app.mydomain.com/api и определить клиента по заголовку HTTP? Я думал об этом таким образом, на случай, если в будущем я захочуположить экземпляры для некоторых очень крупных клиентов.
  • Для приложений SPA, как я могу проверить правильность клиента?Должен ли я иметь приложение MVC на app.mydomain.com, которое проверяет, являются ли / client1 или / client2 действительными в моей базе данных, а затем возвращает SPA?Или это можно проверить прямо из JavaScript, вызвав API?
  • Любой другой подход, кроме того, что я думал, или какую-либо рекомендацию принять во внимание?
...