Django TokenAuthentication

Пытаюсь сделать авторизацию по токену в своем АПИ. И это даже получается на половину, как ни странно. Проблема в следующем:

Есть одно представление (которое работает):

@api_view(['POST'])
@authentication_classes([TokenAuthentication])
@permission_classes([IsAuthenticated])
def some_func1(request):
    ...

Токен принимает, по request.user выводит нужного пользователя. С этим все хорошо. И есть еще одно представление:

class some_class1():

    def dispatch(self, request, *args, **kwargs):
        ...

И тут я не могу поставить декораторы, которые использовал в первом случае.

Так же не помогает объявление глобальных переменных authentication_classes = (TokenAuthentication) и permission_classes = (IsAuthenticated,)

В settings.py:

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.TokenAuthentication',
        ),
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
        ),
    }

Прошу помочь с этим.

P.S. Есть еще один очень странный момент, который я никак не могу понять - при запросе из Postman'a request.user во втором представлении возвращает пользователя. Всегда одного. Даже если я в хедере не указывал токен. Не понимаю почему так.

При этом если отправлять запрос через терминал с указанием Токена, или без него - в request.user будет просто AnonymousUser


Ответы (0 шт):