В django DRF с использованием JWT, почему postman правильно блокирует доступ к некоторым представлениям, но они доступны из моего Angular front-end без аутентификации?

Я пытаюсь ограничить доступ к некоторым представлениям моего API, используя Django Rest Framework и simpleJWT https://django-rest-framework-simplejwt.readthedocs.io/. Проблема, с которой я сталкиваюсь, заключается в том, что postman корректно блокирует доступ к моим представлениям, когда я не предоставляю валидный JWT для моего API, но мой Angular front-end не делает этого и предоставляет доступ ко всем представлениям моего DRF API.

{
    "detail": "Authentication credentials were not provided."
}

Вот начало представления с

from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
from rest_framework_simplejwt.authentication import JWTAuthentication
from ..serializer import General_emission_group_serializer_years
from django.db import connection

class EmmissionGroup(APIView):
    authentication_classes = [JWTAuthentication]
    permission_classes = [IsAuthenticated]
    def get(self, request):

Вот мой файл settings.py

И мой urls.py

from django.contrib import admin
from django.urls import path, include
from rest_framework_simplejwt.views import (
    TokenObtainPairView,
    TokenRefreshView,
)
from camping.views.camping_view import CampingViewSet
from camping.views.client_view import ClientViewSet
from camping.views.adresse_view import AdresseViewSet

from rest_framework.routers import DefaultRouter

[importing views]

router = DefaultRouter()
router.register(r'client', ClientViewSet)
router.register(r'camping', CampingViewSet)
router.register(r'adresse', AdresseViewSet)
urlpatterns = [
    [some path]
    path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
    path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
    path('', include(router.urls))

Что вы посоветуете для решения подобной проблемы? Я пробовал postman, и работа по блокированию ограниченных просмотров, похоже, выполняется с помощью этого инструмента. Я подозреваю проблему CORS, но не уверен в этом.

Я вижу, что ваше представление на самом деле требует, чтобы JWT Token был представлен в заголовках

    permission_classes = [IsAuthenticated]

Если вы хотите разрешить пользователям доступ к этой конечной точке без аутентификации, вы можете изменить это значение на

    permission_classes = [AllowAny]

AllowAny дает доступ ко всем методам (GET, POST, PUT, PATCH, HEAD и DELETE, если они реализованы) без какой-либо аутентификации. Также вы можете использовать ReadOnly для safe_methods (GET и HEAD)

    permission_classes = [ReadOnly || IsAuthenticated]

Примечание: || IsAuthenticated используется для предоставления аутентифицированным пользователям доступа ко всем методам, в то время как ReadOnly запрещает это. Если у вас есть только метод get, вы можете использовать:

    permission_classes = [ReadOnly]
Вернуться на верх