Я пытаюсь написать сайт в Django, где URL-адреса API совпадают с URL-адресами, ориентированными на пользователя. Но у меня проблемы со страницами, которые используют POST-запросы и защиту CSRF. Например, если у меня есть страница / foo / add, я хочу иметь возможность отправлять на нее запросы POST двумя способами:
- Как конечный пользователь (аутентифицированный с помощью файла cookie сеанса), отправляющий форму. Это требует защиты CSRF.
- В качестве клиента API (аутентифицированного с использованием заголовка HTTP-запроса). Это не удастся, если включена защита CSRF.
Я нашел различные способы отключения CSRF, такие как @csrf_exempt, но все они отключают его для всего представления. Есть ли способ включить / отключить его на более детальном уровне? Или мне просто придется внедрять собственную защиту от CSRF с нуля?