Как в nuxt ограничить доступ к компонентам в зависимости от прав авторизованного пользователя?
Я только изучаю nuxt, прошу камнями не закидывать.
Возникает опасение что даже после полноценного изучения этой темы останется проблема, по тому прошу поделиться мнением более опытных людей.
Если в стандартном веб приложении, например на Laravel мы на бэке контролируем то, что нужно выдать пользователю, то как всё происходит в nuxt? например я вижу в документации валидацию маршрутов, но разве она будет работать не на клиентской части, которой доверять нельзя?
Если к примеру мы имеем некий секретный компонент, который может видеть только определённая группа пользователей, не сможет ли его подгрузить энтузиаст напрямую запросив с сервера?
Сможет конечно. Факт в том что всем на это пофиг. Нет на фронте таких компонентов, которые надо секретить. Просто нет. Все секретные данные на бэке и их получение ограничено. Соответственно если секретный компонент выводит секретные данные - то он просто ничего не выведет.
Однако если очень хочется - то можно нашаманить, например сделать маршрут и компонент ssr-only и зафорсить полноценный переход по такому маршруту, соответственно заблокировав на бэке. Или настроить, чтоб компонент всегда собирался в отдельный чанк с конкретным именем, и опять же, заблокировать скачивание этого чанка без авторизации.
В любом случае любая безопасность - это бэк, а фронт - это только видимость для удобства.
Нет на фронте таких компонентов, которые надо секретить. Просто нет.
, на ум приходит информация для сотрудников компании, например какой-нить регламент для общения с клиентами... неужели нужно будет подгружать отдельно вместо адекватной вёрстки в компоненте? подобных моментов может быть много, как малозначительных, так и очень критичных для ограничения доступа.
Конечно можно через api:
1. просто выдавать готовую вьюху например на основе blade шаблона Laravel.
2. Или же передавать массив и штамповать + - шаблонные варианты циклом.
Оба варианта это лишние запросы, во втором ещё и придётся хранить многие статичные данные в бд.
Очень надеюсь найти более изящное решение, не отказываясь от удобной структуры компонентов и при этом не рискуя утечкой данных.
Alex Alc, ну да - регламент в базе, редактируемый из админки, на случай изменений.
Очень мало что можно "раз и навсегда" захардкодить на фронте, а все динамические данные - они на бэке вместе с безопасностью