Я собираюсь построить очень большую ERP-систему SaaS на базе SPA с реакцией. js на внешнем интерфейсе, которая имеет действительно сложную систему ролей и разрешений . Я провел некоторый анализ своего приложения, поэтому понял, что должен создать правильную архитектуру своего приложения, чтобы не сожалеть и не беспокоиться о своем приложении и его масштабируемости в будущем. В основном я беспокоился о роли и управлении базой. Где мне нужно переключаться между разными компонентами при первой загрузке.
Бэкэнд, с которым я работаю над этим проектом: Php и node.js
Моя точная проблема : у меня около 500+ разрешений с более чем 100 ролями в моей системе. Некоторые роли получают только от 1 до 10 разрешений. Это приводит к переключению и отображению единственного компонента этого разрешения в клиентском браузере на внешнем интерфейсе. Моя основная проблема Почему я должен загружать нежелательные компоненты в клиентском браузере, к которым у пользователей нет прав доступа?
Пример проблемы: Администратор дал только 3 разрешения г-ну Джону в их системе. Где система содержит всего 100 разрешений. Каждое разрешение приводит к переключению и просмотру 100 родительских компонентов. Если Mr.John имеет только 3 разрешения, которые должны переключать только 3 родительских компонента, почему другие компоненты отправляются в браузер клиента?
Что я хотел сделать?
После аутентификации я хочу проверить разрешение и роль этого пользователя в бэкэнде и отправить только требуемые ресурсы клиент. Таким образом, размер моего приложения зависит от роли и разрешения, которое имеет конкретный пользователь.
Чтобы решить эту проблему, я подумал (не уверен) :
Перед этим проектом У меня есть аналогичный проект на PHP без использования какой-либо сложной библиотеки внешнего интерфейса. Это было действительно легко на этапе разработки. Я работал с React и Vue. Но я никогда не использовал серверный рендеринг. Я думал, что концепция SSR может помочь мне, поэтому я пошел к множеству источников и узнал о SSR. (Тем не менее, я не уверен, что концепция SSR может мне помочь.)
Пожалуйста, помогите мне принять правильное решение?