Как добавить пользовательский доступ к конечной точке API через базу данных? - PullRequest
0 голосов
/ 30 апреля 2020

Я создаю набор API, которые выполняют различные несвязанные задачи. Однако я хочу иметь возможность регулировать, какие пользователи имеют доступ к определенным конечным точкам API. Изображение ниже - моя лучшая попытка визуализировать то, что я хотел бы видеть.

Из моего примера есть три уровня доступа:

  • basi c (доступ к конечной точке 1 )
  • средний (доступ к конечным точкам 1 и 2)
  • самый (доступ ко всем конечным точкам)

Том и Луис имеют одинаковый уровень доступа (базовый *) 1036 *) Джон имеет умеренный доступ. У Сэма больше всего доступа.

Во время вызова одной из конечных точек API идея состоит в том, чтобы запустить user_access_level для таблицы access_levels, чтобы получить access_level_name , затем, наконец, проверьте, позволяет ли user_access_level продолжить процесс. Если в таблице конечных точек есть уровень 0 под уровнем доступа, верните код состояния 403 и сообщение о том, что доступ запрещен.

Мне очень нравится идея доступа к конечным точкам в стиле таблицы истинности, потому что это легко добавлять новые уровни доступа и регулировать, какие конечные точки доступны на основе одного user_access_level . Однако я не уверен, что access_level_name совпадает с одним из столбцов в таблице конечных точек. Судя по моим собственным прочтениям, это может быть не очень хорошей практикой, но я пока не смог придумать ничего лучшего.

Любые альтернативные подходы, которые могут поддерживать такую ​​гибкость, очень ценятся, или в целом обратная связь на столбце / строке сравнения. Спасибо.

database example

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...