У меня есть приложение React, которое отправляет запросы на сервер по адресу https://api.backend.com/ (адрес изменен). Backend — это сервер узлов, выполняющий машинопись и экспресс. Промежуточное программное обеспечение включает в себя стандартные вещи, такие как body-parser, multer. Для Auth мы получаем jwt из тела и проверяем его с помощью jwt. CORS отключен.

В настоящее время мы отправляем имя пользователя и пароль в /auth и получаем JWT в качестве ответа. Затем JWT сохраняется в виде файла cookie. На этом маршруте больше ничего не происходит.

Чтобы убедиться, что пользователь авторизован для доступа к маршрутам приложения, у нас есть маршрут входа в систему, который отправляет запрос в /userInformation , отправляя jwt. JWT проверяется на сервере, разрешается и сохраняется в контексте реакции. Поэтому, если у меня есть JWT в моем контексте, пользователь авторизуется.

Это прекрасно работает на всех устройствах, кроме устройств iOS. На iOS /auth отправляет jwt как положено. Но при попытке пройти через маршрут входа в систему я получаю эту ошибку на iPad:

Authorization response error: {"message":"Network Error","name":"Error","stack":"createError@http://192.168.1.82:3000/static/js/1.chunk.js:61509:24nhandleError@http://192.168.1.82:3000/static/js/1.chunk.js:61052:25","config":{"url":"https://{amp}lt;BACKEND{amp}gt;/getUserInformation","method":"post","data":"{"sessionID":"{amp}lt;MY JWT HERE{amp}gt;"}","headers":{"Accept":"application/json, text/plain, */*","Content-Type":"application/json;charset=utf-8"},"transformRequest":[null],"transformResponse":[null],"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1}}

Я вижу на сервере, что в запросе указаны правильные данные (jwt), и он проверяет (другие устройства регистрируются таким же образом). Ошибок не брошено. Все другие запросы axios в моем приложении работают на iOS, если я отключаю маршрут входа, чтобы позволить мне войти. Кажется, что сервер отправляет ответ об успешном завершении (контекст должен быть установлен правильно, так как все другие маршруты работают), но устройство iOS получает сетевая ошибка.

Также интересно, что если я изменю свой пользовательский агент на Chrome на iOS, аутентификация будет работать. Протестировано и не работает на iPhone Safari, iPad Safari (13.2) и iPad Chrome.

У меня такое ощущение, что это связано с сервером apache, на котором работает бэкэнд. Я установил это с почти ванильной конфигурацией, потому что я не очень хороший администратор сервера. Так что, если это может быть что-то о сервере, пожалуйста, дайте мне знать, как я могу устранить неполадки.

Я тщательно исследовал это и не смог найти никого с такой же проблемой, поэтому любая помощь приветствуется.

Реагируйте на родные аксиозы, не проверяя подлинность с помощью apache / php. Я не отправляю никаких причудливых заголовков, просто jwt в теле. То же, что и другие маршруты, которые правильно обрабатываются Apache. Конечные косые черты ничего не меняют. Я не бегу Джанго.

Не должно быть никаких предварительных запросов, так как запросы являются перекрестными.

Я знаю, что не рекомендуется отправлять учетные данные в теле, но это проблема? Мы все еще находимся в разработке, поэтому безопасная аутентификация не является основной проблемой.

г-гы

новый участник этого сайта. Будьте внимательны, спрашивая разъяснения, комментируя и отвечая. Проверьте наш

Правила поведения

,