Как обрабатывать сеансовую и токен-аутентификацию одновременно, используя промежуточное ПО в django?
Я хочу использовать токен и сеансовую аутентификацию в своем приложении с приоритетом токена. Я создал два портала с одним и тем же URL, один использует сеанс, а другой использует токен. Таким образом, когда сеанс доступен в файле cookie, запрос на основе токена завершается неудачно с сообщением об ошибке "CSRF Token отсутствует".
Одно из решений, которое я имею в виду, это использование промежуточного программного обеспечения, где я могу сделать приоритет токену. Если оба доступны в запросе, то пользовательское промежуточное программное обеспечение удалит материалы, связанные с сеансом, сохранит только информацию, связанную с токеном, и продолжит работу.
Если у кого-то есть решение для этой проблемы, пожалуйста, напишите в ответ?
Заранее спасибо.
2 ответа
В моем случае я написал специальное промежуточное ПО, чтобы справиться с ситуацией.
1. Когда я вхожу, используя API, и путь API **/api/accounts/login**
, Поэтому, когда запрос приходит по этому URL, я удаляю сессионный и csrftoken оба.
Когда HTTP_AUTHORIZATION доступен в запросе, я удаляю сеанс и csrftoken.
Использование выше двух ситуаций удаления может быть обработано в моем случае.
Спасибо всем за помощь.!!
Промежуточное программное обеспечение Django выполняется в порядке, соответствующем кортежу MIDDLEWARE_CLASSES.
Вы должны убедиться, что ваше промежуточное программное обеспечение для аутентификации на основе токенов находится после AuthenticationMiddleware в MIDDLEWARE_CLASSES.
Документы описывают этот подход в контексте RemoteUserMiddleware.