Yorik
@Yorik
Frontend-щик

Как правильно организовать передачу прав для конкретной роли юзера с back-end на front-end?

Добрый вечер!

Есть фронт на Vue и бэк на Go. Есть много ролей и у всех разная комбинация доступов. Есть идея просто получить по токену соответствующий список разрешенных эндпоинтов и методов и на каждую кнопку на фронте вешать проверку (показывать/не показывать). Но кажется это не круто.

Не подскажите как правильно?
  • Вопрос задан
  • 506 просмотров
Пригласить эксперта
Ответы на вопрос 2
Передавать ссылки на действия в api. Нет ссылки - нет доступа, и кнопка на фронте не выводится.
_links: [
  create: 'api.ru/action-crate',
  read: 'api.ru/action-read',
  update: 'api.ru/action-update',
  delete: 'api.ru/action-delete'
]
Ответ написан
IgorPI
@IgorPI
Как я бы поступил.

Ход моих мыслей.
...

В идеальном мире back end and frond and не должны знать о существовании друг друга, но речь не об этом.

Бизнес логика в back end, будет своя.
Бизнес логика на сайте, мобильном приложении так же будет своя.

Было бы не плохо иметь специальный метод, который возвращает эти самые привилегии списком.
А уже потом, в (мобильном приложении, сайте) на основе полученных данных скрывать те или иные разделы.

Опять же, если юзер используя UI, пытается получить те или иные данные по API, Он однозначно должен выступать с определенными разрешениями, которые запрограммированы в самом back end.

К чему я виду, даже если вы скроете кнопки визуально, злоумышленник или юзер без привилегий все ровно может получить доступ к данным.

Поэтому в первую очередь, разрешения, роли нужно программировать на уровне API
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы