Привет всем, я ищу помощи. У меня есть Expo - React Native
приложение, которое использует OpenAPI
сгенерированный клиент API с использованием Axios
Framework.
API требует проверки CSRF / XSRF.
Tha API отправляет SET-COOK IE Header со значением XSRF-TOKEN и при выполнении запроса POST API требует отправки соответствующих токенов в COOKIES и заголовке X-XSRF-TOKEN
.
- Я убедился, что мой клиент API всегда использует один и тот же экземпляр
axios
- Я использую опцию
withCredentials: true
(это работает безупречно для файлов cookie), но она не отправляет X-XSRF-TOKEN в заголовке, причина в том, что она не реализована в ax ios: https://github.com/axios/axios/blob/master/lib/adapters/xhr.js#L105 - Я создал
axios
перехватчик ответа, который проверяет значение SET-COOK IE XSRF-TOKEN и устанавливает его в качестве заголовка по умолчанию для того же экземпляра ax ios globalAxios.defaults.headers['X-XSRF-TOKEN'] = ...
Все было идеально, потому что это работает, пока приложение не загрузит изображение с того же сервера через ReactNative <Image />
, , которое устанавливает новые файлы cookie, которые ax 1040 использует в следующем запросе. В результате создаются несоответствующие значения файлов cookie XSRF-TOKEN и заголовка X-XSRF-TOKEN, поэтому сервер отвечает 403 ...
Я также попытался создать перехватчик запросов и прочитал Файлы cookie перед отправкой запроса для установки того же заголовка, но я не могу получить доступ к значению куки из перехватчика запроса.
Сейчас я совершенно потерян и не вижу какого-либо разумного способа сделать эту работу .
Может ли кто-нибудь бросить мне кость здесь, пожалуйста:)