Python Flask Кэширование 401 POST и применение к следующему запросу

У меня есть бэкенд Python flask, который возвращает JSON. Каждый раз, когда я делаю POST запрос, который возвращает 401 (потому что срок действия токенов истек), он затем добавляет данные тела JSON к следующему запросу, что вызывает 405 метод не разрешен, потому что, как вы можете видеть, данные отображаются там, где должен быть метод. Это та же проблема, что и в этом посте для Django

Вот журнал с моего локального компьютера:

127.0.0.1 - - [25/May/2022 08:17:01] "POST /stsatellites/filter HTTP/1.1" 401 -
127.0.0.1 - - [25/May/2022 08:17:29] "OPTIONS /auth/login HTTP/1.1" 200 -
127.0.0.1 - - [25/May/2022 08:17:29] "{"filters":[{"field":"NORAD_CAT_ID","op":"eq","value":25165}]}POST /auth/login HTTP/1.1" 405 -

Вот скриншоты запросов, как вы можете видеть, что данные фильтра возникли в первом запросе, который получил ответ 401. Filter POST Filter POST Payload

Следующий запрос на вход в систему: Login POST Headers Login POST Payload

У нас есть обходной путь, который решает эту проблему, но это пластырь, который я хотел бы снять. По какой-то причине метод request.get_data устраняет проблему кэширования.

@app.after_request
def after_request_func(response):
    if response.status == "401 UNAUTHORIZED": 
        request.get_data(cache=False)
    return response 
Вернуться на верх