Ошибка аутентификации токенов Django: запрос cURL без заголовка показывает 401 unauthorized, но добавление заголовка token auth приводит к ошибке 404 not found

В заголовке изложена проблема, с которой я столкнулся. Работаю над приложением Django с конечной точкой API. Я могу (полууспешно) получить доступ к конечной точке через простой cURL без заголовка, который возвращает 401, но когда я добавляю токен заголовка, я получаю ошибку 404 not found. Что может быть не так? Я пробовал множество различных комбинаций изменений настроек django на этих форумах и не могу заставить его измениться. Примеры некоторых вещей, которые я пробовал:

  • Изменение порядка MIDDLEWARE
  • CORS_ORIGIN_WHITELIST
  • CORS_ALLOWED_ORIGINS
  • CORS_ALLOW_CREDENTIALS
  • CORS_ORIGIN_ALLOW_ALL
  • Играем с настройками REST_FRAMEWORK - оба DEFAULT_AUTHENTICATION_CLASSES & DEFAULT_PERMISSION_CLASSES
  • Изменение ALLOWED_HOSTS с [] на текущее значение ниже

CORS_ALLOWED_ORIGINS

Прилагаю фрагменты соответствующего кода:

401 cURL: curl -X GET http://127.0.0.1:8000/bettor/create/

404 cURL: curl -X GET http://127.0.0.1:8000/bettor/create/ -H "Authorization: Token <super secret but valid token>"

settings.py:

model/views.py:

class BettorViewSet(viewsets.ModelViewSet):
    serializer_class = BettorSerializer
    queryset = Bettor.objects.all()

model/serializer.py:

class BettorSerializer(serializers.ModelSerializer):
    class Meta:
        model = Bettor
        # fields = ('userId', 'bettorId', 'booksConnected', 'isCapper', 'phoneNumber')
        fields = "__all__"

model/apps.py:

class UsersConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'Users'

model/admin.py:

class BettorAdmin(admin.ModelAdmin):
    list_display = ('userId', 'bettorId', 'booksConnected', 'isCapper', 'phoneNumber')

# Register your models here.
admin.site.register(Bettor, BettorAdmin)

urls.py:

router = routers.DefaultRouter()
router.register(r'bettor', views.BettorViewSet)
urlpatterns = [
...
re_path('', include(router.urls)),
...
]

Также есть некоторые файлы asgi.py и wsgi.py, которые я не трогал.

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