Как защитить файлы компонентов VUE от просмотра неавторизованными пользователями?
Здравствуйте!
Начинаю изучать vue.js в связке с laravel и появился вопрос, на которой не могу найти ответ.
Если есть административная часть сайта, то получается, что все исходные файлы js (бандлы) доступны для просмотра даже без авторизации, так как они загружаются при загрузке страницы еще до авторизации. Верно это или нет?
Если это верно, то как скрыть от неавторизованных пользователей файлы компонентов, просмотр которых может навредить сайту? Например, просмотр шаблона компонента для настройки коэффициентов для расчета рейтинга товаров позволит узнать, какие факторы влияют на рейтинг, что позволит влиять на рейтинг в обход правил сайта.
Есть ли способ загружать определенные компоненты только после авторизации (чтобы неавторизованным пользователям выдавалась ошибка)?
Например, просмотр шаблона компонента для настройки коэффициентов для расчета рейтинга товаров позволит узнать, какие факторы влияют на рейтинг,
Расчёт рейтинга делайте на стороне laravel. Вообще, всё важное держите на бэке: бизнес-логику, проверку пользовательского ввода... На фронте (vue) только UI.
все исходные файлы js (бандлы) доступны для просмотра даже без авторизации,
Без дополнительной защиты роутов (laravel или веб-сервер) - доступны. Даже если вы используете vite dynamicImports для компонентов доступных после аутентификации - полный список assets доступен в файле manifest.json.
Есть ли способ загружать определенные компоненты только после авторизации (чтобы неавторизованным пользователям выдавалась ошибка)?
Есть. Но это совсем не тривиальная задача для "начинающего изучать vue.js в связке с laravel". Советую для начала сконцентрироваться на изучении сайтов с документаций и пользоваться базовыми функциями фреймворков.
Расчёт рейтинга делайте на стороне laravel. Вообще, всё важное держите на бэке: бизнес-логику, проверку пользовательского ввода... На фронте (vue) только UI.
Возможно, некорректно описал пример компонента. Я хотел акцентировать внимание на том, что бывают случаи, когда знание хотя бы названий элементов в списке уже может негативно повлиять на бизнес.
Например, список факторов ранжирования Яндекса намного важнее, чем конкретные значения коэффициентов для каждого фактора.
Андрей, все что загружается пользователю каким либо образом небезопасно, информация критичная для бизнеса не должна загружаться пользователю никогда и ни при каких условиях.
Если v-if поможет, то где будет храниться код компонента для рендеринга при выполнении условия?
Кажется, что код компонента так и останется в бандлах, а не будет подгружаться динамически да еще и с проверкой авторизации.