CSRF защита для django session-based auth для Hasura + auth webhook
У меня есть приложение react для фронтенда, экземпляр hasura для движка graphql, подключенного к моей базе данных, и приложение django для их простой аутентификации на основе сессий, ORM и миграций.
До того, как я ввел экземпляр Hasura, моя аутентификация работала как шарм. Я получал CSRF-токен и HTTP-Only cookie от django во фронтенде и при отправке POST-запросов отправлял токен в заголовках вместе с cookie, который отправлялся автоматически.
Для Hasura я должен использовать webhook для аутентификации запросов graphql, и я хотел сделать это с помощью моих уже существующих сессий django. Используя клиент apollo, я настроил промежуточное ПО для получения токена csrf и cookie из моего приложения django и отправки их вместе с каждым запросом, где Hasura затем (надеюсь) пересылала их на веб-хук django.
Но теперь моя проблема в следующем: Django делает CSRF проверки только для POST запросов, и если я настраиваю Hasura на отправку POST запроса на мой webhook, он помещает все заголовки из моего клиентского запроса в тело как JSON, и промежуточное ПО django CSRF не проходит проверку.
Есть ли способ заставить django делать проверку CSRF для конкретного представления независимо от метода запроса? Я знаю, что GET-запросы технически безопасны, но в данном случае я должен использовать GET из-за Hasura.