Пользовательская проверка подлинности rest_framework не вызывается - PullRequest
0 голосов
/ 20 апреля 2020

Я использую djangorestframework 3.9.2

У меня есть следующие настройки для rest_framework

....
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'my_project.middlewares.authentication.CentralAuthentication',
    ],
    'DEFAULT_PERMISSION_CLASSES': [
        'my_project.middlewares.authorization.CentralAuthorization'
    ],
}
....

И моя структура каталогов такая

├── app1/
└── my_project
    ├── __init__.py
    ├── middlewares
    │   ├── __init__.py
    │   ├── authentication.py
    │   └── authorization.py
    ├── settings
    │   ├── __init__.py
    │   ├── commons.py
    │   ├── development.py
    │   └── logger.py
    ├── urls.py
└── wsgi.py

Мой скрипт аутентификации мне не звонят каждый раз, когда я получаю доступ к своему URL.

Есть ли что-то, чего я здесь не хватает?

1 Ответ

0 голосов
/ 20 апреля 2020

Эти классы разрешений или классы аутентификации не являются промежуточными программами , и они не будут выполняться автоматически. Эти классы работают только с представлениями DRF

Итак, определите представление DRF и подключите представление в вашем urls.py модуле

from rest_framework.views import APIView
from rest_framework.response import Response


class FooAPI(APIView):
    def get(self, request, *args, **kwargs):
        return Response({'message': 'success'})


urlpatterns = [
    path('foo/', FooAPI.as_view(), name='foo-api'),

]

Во время выполнения этого класса FooAPI DRF будет вызывать значения по умолчанию permission_classes и authentication_classes

...