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