Как управлять видимостью элементов UI в зависимости от прав пользователя?
Добрый день!
Есть гипотетическое веб-приложение. Бэк на Spring, фронт на React отдельным приложением. Есть пользователи с разными правами (Spring Security). Часть элементов интерфейса нужно скрывать от некоторых пользователей в зависимости от прав. Например, пункты меню, кнопки, вот это вот всё.
Если бы фронт был на Thymeleaf, мы для для этого использовали конструкцию типа
<div sec:authorize="isAuthenticated()">
Вопрос: как в общих чертах решается эта задача в случае, когда фронт написан на JS-фреймворке? Есть какие-то практики, рекомендации? Пока только приходит на ум отдельным запросом получать с бэка информацию о доступности элемента интерфейса для пользователя. Но решение, очевидно, не очень элегантное и, потому, скорее всего не верное. Как вообще люди решают эту задачу в общих чертах?
Когда на фронте SPA, стоит использовать JWT - на успешную аутентификацию по паре логин-пароль отдавать с сервера токен, содержащий информацию о правах. Фронт будет отображать элементы интерфейса в соответствии с информацией из токена, а при действиях требующих авторизации, передавать этот токен бэку для проверки.