Файлы 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">

что, я думаю, в вашем случае не поможет, так как вы на том же происхождении.

Другие вопросы по тегам