Для приложения ionic 3, над которым я работаю, мы настроили бэкэнд для использования CORS.
Пока все хорошо.
Теперь мы переключились с авторизации на куки-токены с помощью Authorization
заголовок. Кроме того, мы добавили несколько других заголовков в заголовок ACCESS-CONTROL-ALLOW-HEADERS
(например, User-Agent, Sec-Fetch-Mode, Referer & Authorization для обхода дополнительных ограничений).
Странно то, что всевнезапно я вижу запросы перед полетом и ответы, появляющиеся во вкладке сети инструментов разработчика Chrome. Этого раньше не было.
Разве браузер / веб-представление не должны абстрагироваться от приложений, чтобы не пропускать конфиденциальную информацию об ошибках и прозрачно обрабатывать CORS?
Это примерчто показывают инструменты chrome dev для одного из этих запросов:
General
Request URL: [URL]
Request Method: OPTIONS
Status Code: 200 OK
Remote Address: [IP Address]
Referrer Policy: no-referrer-when-downgrade
Заголовки ответа
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, Authorization, Origin, User-Agent, Sec-Fetch-Mode
Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE
Access-Control-Allow-Origin: http://localhost:8080
Access-Control-Max-Age: 3600
Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Connection: Keep-Alive
Content-Length: 0
Date: Fri, 18 Oct 2019 12:57:07 GMT
Expires: 0
Keep-Alive: timeout=5, max=99
Pragma: no-cache
Server: Apache-Coyote/1.1
X-Application-Context: application:prod:8080
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Заголовки запроса
Provisional headers are shown
Access-Control-Request-Headers: authorization
Access-Control-Request-Method: GET
Origin: http://localhost:8080
Referer: http://localhost:8080/
Sec-Fetch-Mode: cors
User-Agent: Mozilla/5.0 (Linux; Android 9;...) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/77.0.3865.116 Mobile Safari/537.36 [some additional info added to the user agent]