Как реализовать аутентификацию на основе ролей с помощью JWT в Python - PullRequest
2 голосов
/ 16 апреля 2020

Я ищу реализацию аутентификации на основе ролей в приложении Vue / FastApi. Я пришел из истории использования веб-форм в asp. net, и было довольно просто скрывать и отображать определенные формы в зависимости от того, является ли пользователь администратором, либо менеджером, либо сотрудником и т. Д. c. Есть ли способ сделать это с Vue / FastApi с JWT?

1 Ответ

1 голос
/ 20 апреля 2020

Вам придется разделить аутентификацию на две части:

  • Аутентификация с помощью Vuejs. Это не зависит от Фастапи. Единственной общей вещью будет тот факт, что при входе в систему, vue будет аутентифицироваться в fastapi (как человек посередине, который передает информацию). Vue затем кеширует полученный токен JWT (или любой полученный токен) и сохраняет его в сеансе (чтобы в случае перезагрузки страницы пользователю не приходилось снова входить в систему). Как только пользователь выйдет из системы, удалите токен из приложения vue.

  • Аутентификация через FastAPI. Здесь вы просто проходите аутентификацию с использованием имени пользователя и пароля, получаете токен JWT в качестве ответа (или любой другой токен, который вы хотите) и используете этот токен для следующих запросов.

По существу, один раз vue получает пароль пользователя, он аутентифицируется в API fastapi, получает токен и сохраняет его где-то (это зависит от того, как вы его реализуете и от vuejs, я не использовал, поэтому ничего не могу сказать).

При подключении к фону эквивалентом формы. net будет форма входа vue, но я рекомендую вам сначала следовать некоторым учебникам по vuejs, чтобы сначала понять, как она работает, и иметь правильное понимание того, как это работает, и каковы некоторые возможности для достижения чего-либо.

...