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