403 Ошибка проверки CSRF Django при ссылке sh url? - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть представление, которое принимает запрос на публикацию от моего маршрута / входа в систему, но после принятия запроса на вход в систему и перенаправления на /, когда пользователь обновляет браузер sh, я получаю код ошибки 403 CSRF.

Как я могу оптимизировать мой код, чтобы, если пользователь обновляет браузер, он не выдавал ошибку?

view


def index(request):
    username = password = '' 

    if request.method == 'POST':
        HttpReferrer = request.session.get('HttpReferrer')
        if  HttpReferrer == '/login':
            username = request.POST['username'].lower().strip()
            password = request.POST['password']
            user = authenticate(username=username, password=password)
            if user is not None and user.is_active:
                login(request, user)
                return index_(request)
            else:
                err = {"err_login": {"code": 404, "message": "The username and password combination do not match our records. Please double-check and try again."}}
                return render(request, 'auth/auth.html', err)

1 Ответ

0 голосов
/ 11 апреля 2020

Почему вы хотите публиковать на индексной странице?

Это страница входа в систему (представление входа в систему), которая должна обрабатывать имя входа, верно?

Если имя входа view обрабатывает вход в систему, затем просто получите пользователя в вашем индексном представлении с user = request.user

, вам не нужно повторно проходить аутентификацию в индексном представлении.

Если, с другой стороны, индексное представление ваш логин, то почему вы проверяете реферера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...