Достаточно ли добавить path в DRF для session based auth для фронта на реакте?

Для использования основанной на сессиях аутентификации в Django REST Framework (DRF) с фронтендом на React вы должны выполнить несколько шагов. Добавление пути (path) в DRF является только одним из этих шагов.

Ниже представлены подробные инструкции по настройке основанной на сессиях аутентификации в DRF с фронтендом на React.

Шаг 1: Установка Django и DRF
Сначала убедитесь, что у вас установлен Django и DRF. Вы можете установить их, используя pip:

pip install django djangorestframework

Шаг 2: Настройка аутентификации в Django
Добавьте 'rest_framework.authentication.SessionAuthentication' в список DEFAULT_AUTHENTICATION_CLASSES в файле настроек Django (settings.py):

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.SessionAuthentication',
    ],
}

Это позволяет использовать аутентификацию на основе сессий DRF.

Шаг 3: Создание путей в DRF и настройка CORS
Создайте пути (полный список CRUD-путей) в DRF, используя классы представлений и маршрутизаторы. К примеру, в файле urls.py:

from django.urls import include, path
from rest_framework import routers
from myapp import views

router = routers.DefaultRouter()
router.register(r'mymodels', views.MyModelViewSet)

urlpatterns = [
    path('api/', include(router.urls)),
]

Это создает пути для моделей из вашего приложения (MyModel), используя представления, основанные на классах.

Кроме того, убедитесь, что вы настроили CORS (Cross-Origin Resource Sharing), чтобы разрешить запросы из вашего фронтенда React. В Django вы можете использовать пакет django-cors-headers для этого:

Установите пакет:

pip install django-cors-headers

Добавьте 'corsheaders.middleware.CorsMiddleware' в список MIDDLEWARE в settings.py:

MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
    ...
]

Добавьте 'corsheaders' в список INSTALLED_APPS в settings.py:

INSTALLED_APPS = [
    ...
    'corsheaders',
    ...
]

Настройте параметры CORS в settings.py:

CORS_ORIGIN_ALLOW_ALL = True

Шаг 4: Настройка аутентификации в React
В вашем фронтенд-приложении на React вы должны выполнить следующие шаги:

- Создайте форму или страницу для входа пользователя, которая отправляет POST-запрос на /api/login/ с данными пользовательского имени (username) и пароля (password). Это создаст сеанс пользовательской сессии.

- Создайте раздел в вашем приложении, который требует авторизации, и отправьте GET-запрос с заголовком X-CSRFToken, чтобы получить данные, защищенные аутентификацией на основе сессий.

После выполнения всех этих шагов вы сможете использовать аутентификацию на основе сессий DRF с вашим фронтендом на React.