Я пытаюсь управлять разрешениями доступа (SPA на основе Laravel и Backbone.js) для обеих ролей & типы подписки.
Хотя управлять доступом к конечным точкам API на основе указанных критериев несложно, я не могу понять, как это можно сделать в веб-интерфейсе. Каковы лучшие практики на этом?
Подводя итог, нужно решить две вещи:
По желанию можно подумать и о разрешенных маршрутах.
Тогда хорошей практикой было бы только возвращать из серверной части ACL для пользователя и определять из него, какие элементы отображать в меню и на экранах (что будет означать написание какого-либо сопоставления между ACL и контролем доступа и рендеринг) или было бы лучше вернуть более конкретную информацию (например, структуру меню).
Могу ли я получить совет по этому поводу?
Возврат детализации разрешения из API должен быть достаточным. Например, При успешном входе в систему верните все разрешения, которые доступны пользователю, и сохраните их в локальном хранилище приложения. Позже вы можете использовать разрешение, чтобы проверить, предоставлять ли пользователю доступ к меню / компоненту или нет. Таким образом, на основе разрешений вы можете показать / скрыть пункты меню.
Вы даже можете написать небольшую функцию, которая принимает один параметр для проверки прав доступа, и она будет возвращать истину / ложь на основе существования / несуществования. Поэтому, когда вам требуется проверить разрешение, вы можете вызвать функцию проверки разрешения и принять решение, показывать или скрывать элемент меню или компонент.
Других решений пока нет …