LisPNZ
@LisPNZ
Почти фулстек

Permission на клиенте. Как реализуют профи?

Здравствуйте. Поделитесь опытом, как организовать доступ к функциям на клиенте(браузере).
Ситуация такова: на бекенде с jwt авторизацией.(состояние авторизованного пользователя не хранится) есть апи которые доступны не каждому пользователю. Как обычно делается с клиентом? То есть например кнопку с ограниченной функцией нужно скрыть/заблокировать или лучше оставить и после нажатия отвечать что функция недоступна. В первом случае, получается надо хранить на клиенте все функции доступные пользователю.
Перечитал, понимаю что описал вопрос некрасиво. Как перефразировать покороче не знаю.
  • Вопрос задан
  • 994 просмотра
Пригласить эксперта
Ответы на вопрос 2
Fragster
@Fragster
помогло? отметь решением!
На клиенте рисовать только доступные кнопки, с клиента периодически слать запрос на доступные кнопки + отдельная кнопка для обновления с клиента. Иметь возможность "пропихнуть" кнопки с сервера в дополнение к ответу на запрос. На сервере, естественно, проверять доступность функции.
Если же нам надо продать "недоступные кнопки", то их можно рисовать, но в задизэйбленом состоянии.
Ответ написан
Nemozar
@Nemozar
Php developer
Я не профессионал, но решение для себя такое сделал.

Фронтенд хранит все формы, кнопки и тп. отображение интерфейса производится через проверку прав доступа.

Сервер на laravel, после авторизации возвращает меню + rbac пользователя. Интерфейс отрисовывается в зависимости от разрешений пользователя (permissions). При изменении списка разрешений, например администратором, отправляется обновлённый список ролей пользователю через websocket. Перестраивается интерфейс.

И на сервере всегда проверяю разрешено ли пользователю выполнять данное действие.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы