В итоге
Как только ваши пользователи войдут в систему, все их запросы будут связаны с их Django пользователем, доступным в request.user
. Таким образом, вам не нужно взаимодействовать с представлениями аутентификации Django через React после входа в систему.
Подробно
При условии, что у вас есть:
'django.contrib.auth'
и 'django.contrib.contenttypes'
в ваших INSTALLED_APPS
SessionMiddleware
и AuthenticationMiddleware
в ваших MIDDLEWARE
настройках - URL-адреса авторизации в вашем основном файле urls.py:
path('accounts/', include('django.contrib.auth.urls')
Тогда ваши пользователи могут войти в систему, используя представление на /accounts/login/
. После этого они получат session
cook ie, который отправляется с каждым запросом на ваш Django сервер. Этот повар ie используется Django, чтобы определить, какой пользователь сделал запрос. Django предоставляет эту информацию вам в request.user
.
. Этот объект можно использовать для проверки прав в ваших представлениях DRF:
if request.user.is_staff:
# Do something for staff users.
else:
# ...
Примечания
Как только пользователи проходят аутентификацию, вы захотите проверить, есть ли у отдельного пользователя разрешение на доступ к запрашиваемым им данным, но это другое разрешение. c. DRF имеет документацию о разрешениях .
Для запросов без GET вы должны включить токен CSRF в свой запрос. Вы можете использовать тег Django {% csrf_token %}
для получения токена или получить его из файлов cookie: var csrftoken = Cookies.get('csrftoken');