LINUX.ORG.RU

Отключить csrf в Django

 , ,


2

1

Необходимо отключить проверку csrf на POST запросы. Я пишу просто API на Django, к API можно получить доступ только по секретному ключу (150 знаков), и даже если есть ключ, то еще нужна авторизация, после успешной авторизации выдается access_token на время, потом нужно обновлять, так что в общем-то не вижу надобности в csrf.
Сейчас сделал что есть отдельный метод у API csrf_token который будет возвращать этот самый токен, но мне такое решение не нравится

★★

settings.py, MIDDLEWARE_CLASSES, django.middleware.csrf.CsrfViewMiddleware пробовал убрать?

AlexKiriukha ★★★★ ()

У всех запросов что ли отключить надо?

FIL ★★★★ ()

Если нет, то юзай декоратор

from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def view(request):
    pass

FIL ★★★★ ()

Лучше всё-таки декоратор для конкретных обработчиков добавить

Goury ★★★★ ()
Ответ на: комментарий от Int64

Попробуй доки почитать. Они там запутанные местами, но в них таки есть вся нужная инфа.

Goury ★★★★ ()
Ответ на: комментарий от Int64

Ты же говоришь у тебя API на django, т.е. запросы скорее всего делаются через ajax? Тогда твоя ссылка явно говорит:

But when I use Ajax to send a request, Django still respond 'csrf token is incorrect or missing'

Дело в том, что полностью отключить csrf проверку для всех запросов нельзя, без патчинга исходников самой джанги.

Только отдельных запросов, используя декоратор, указанный выше.

pawnhearts ★★★★ ()
Ответ на: комментарий от Int64

* я только пару дней в Django работаю

* Отключить csrf в Django

наверно это вопрос номер 1 :)

fMad ★★ ()
Последнее исправление: fMad (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.