Файлы cookie не отправляются с запросом для веб-приложения manifest.json
Я пытаюсь включить PWA на веб-сайте, который требует аутентификации (токены входа, управляемые с помощью файлов cookie).
Я пытаюсь это локально ( http://localhost:4502/) и войти (и мне выдан cookie для входа) для веб-сайта.
Проблема заключается в том, что при запросе манифеста Web App файлы cookie не отправляются по запросу, поэтому запрос не проходит проверку подлинности.
<link rel="manifest" href="/content/site-x/manifest.json">
Как вы можете видеть, манифест подается с того же хоста / схемы, что и веб-страница, на которой он находится.
У запросов на манифест есть куки? Я даже установил свой cookie для входа в систему как можно более слабым, но ничего. Файлы cookie отправляются по всем другим запросам (JS, CSS и т. Д.). Возможно, в localhost есть что-то особенное? Или это не http?
1 ответ
Согласно https://developers.google.com/web/fundamentals/web-app-manifest/
Запрос манифеста выполняется без каких-либо учетных данных (даже если он находится в том же домене), поэтому, если манифест требует учетных данных, вы должны включить crossorigin="use-credentials" в тег манифеста.
Итак, добавив <link rel="manifest" href="/manifest.json" crossorigin="use-credentials">
для обоих доменов как добавление файлов cookie сервера в запрос манифеста
Кажется, есть старая ошибка в хроме, которая должна была быть исправлена в течение всех этих лет. Возможно, вы можете попробовать использовать ajax/fetch
"/content/site-x/manifest.json" с requestHeader "Content-type: application/json"
а затем создать из него BLOB-объект, затем вызвать createObjectURL(Blob) и передать этот URL-адрес для href?
И затем также, есть это:
<link rel="manifest" href="/manifest.json" crossorigin="use-credentials">
что, я думаю, в вашем случае не поможет, так как вы на том же происхождении.