kustiktm_kirill
@kustiktm_kirill

Как исправить CSRF token invalid после деаутентификации через AJAX?

Заголовок вопроса кривой, но не суть.
В общем на главной странице есть аутенфикация через AJAX post запрос. Он отправляет на сервер почту (как логин), пароль и берет из кук csrf токен.
Аутенфикация прошла успешно и вместо формы появляется блок с логином, аватаркой, кнопкой перейти в лк и кнопка для деаутентификации.
Если человек тут же нажмет выйти на сервере сработает logout и появится опять форма ввода логина и пароля. Но уже при попытке аутентификации сервер выкинет ошибку csrf token invalid.
Как это можно поправить без перезагрузки страницы? В доки залез, долистал до X-CSRFToken, но не понял, как им рулить.
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 1
AlexNest
@AlexNest
Работаю с Python/Django
Если я правильно понял проблему, то как-то так, если использовать прямо в шаблоне.

function add_to_cart(id) {
        let token = '{{csrf_token}}';
        $.ajax({
            headers: { "X-CSRFToken": token },
            url: '/add-to-cart/',
            type: 'POST',
            data: {'id':id},
            success: function(data) {

                get_cart()
                
            },
            failure: function(data) {
                console.log('Не успешно');
            }
        });

    }

По идее, не вижу проблем, чтобы указывать token / {{csrf_token}} при вызове функции. Тогда ее можно будет вынести в отдельный фай.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы