Для использования основанной на сессиях аутентификации в 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.