Аутентификация фреймворка Django REST не работает с представлением на основе классов

Я использую DRF (3.12.4) с SimpleJWT для аутентификации. Это работает с представлением на основе функций, но не работает с представлением на основе классов. Для представления на основе класса нет никакого эффекта и запрос проходит без аутентификации. Вот мое представление на основе функций

@api_view(['POST'])
@permission_classes([IsAuthenticated])
def test_function_view(request):
    return JsonResponse({"message": "test ok"}, safe=False, status=200)

Вот мое представление, основанное на классах

class TestClassView(APIView):
    authentication_classes = [JWTAuthentication]
    permission_classes = [IsAuthenticated]

    def post(request):
        return JsonResponse({"message": "post ok"}, safe=False, status=200)
    def get(request):
        return JsonResponse({"message": "get ok"}, safe=False, status=200)

Настройки

REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ],
}

URLs

path('api/v1/agents/performancetest/testclass', TestClassView.post),
path('api/v1/agents/performancetest/testfunction', test_function_view),

В представлении, основанном на классе, аутентификация не имеет эффекта, поэтому при отправке GET запроса без аутентификации, он прошел, а для POST запроса, он получил ошибку CRSF из-за отсутствия аутентификации.

Forbidden (CSRF cookie not set.): /api/v1/agents/performancetest/testclass
HTTP POST /api/v1/agents/performancetest/testclass 403 [0.02, 127.0.0.1:59664]
HTTP GET /api/v1/agents/performancetest/testclass 200 [0.00, 127.0.0.1:59664]

Есть ли здесь что-то, что я упустил, или какая-нибудь подсказка? Спасибо.

class TestClassView(APIView):
    authentication_classes = [JWTAuthentication]
    permission_classes = [IsAuthenticated]

    def post(self, request):
        return JsonResponse({"message": "post ok"}, safe=False, status=200)
    def get(self, request):
        return JsonResponse({"message": "get ok"}, safe=False, status=200)

и проверьте, передаете ли вы jwt в вашем api запросе

Вернуться на верх