Django REST Framework - Аутентификация API - авторизация приложений вместо пользователей - PullRequest
0 голосов
/ 23 апреля 2020

Будучи новичком в Django, мне стало интересно, есть ли «быстрый» и «элегантный» способ заменить модель по умолчанию, с помощью которой Django создает токены доступа для аутентификации API?

Я использую плагины как "django -rest-framework-simplejwt", и по умолчанию они работают только с моделью пользователя.

Смысл в том, чтобы позволить пользователям создавать приложения, и каждое приложение имеет свой собственный доступ к API и refre sh токенов!

Спасибо.

1 Ответ

0 голосов
/ 06 мая 2020

Я наконец-то закончил разработку своей собственной системы аутентификации приложений!

  1. Бэкэнд аутентификации: который должен обрабатывать аутентификацию приложений.
  2. Промежуточное ПО: для проверки существования токена Bearer и проверяет, является ли оно все еще действительным, а также устанавливает приложение в запрос, так что «приложение» может быть доступно из «request.app» (точно так же, как и request.user).
  3. Декораторы: Выполнить предыдущее промежуточное ПО прямо перед Представления.

Это пример того, как выглядит представление.

@method_decorator([require_POST, AuthorizeTokensAndSetApp], name='dispatch')
class PaymentBillCreateView(APIView):
    authentication_classes = [MyTokenAuthentication]
    permission_classes = [UserIsAllowedToAccess, AppIsAllowedToAccess]
    renderer_classes = [JSONRenderer]
...