首页 > 解决方案 > Cookie 未随 Web 应用 manifest.json 请求一起发送

问题描述

我正在尝试在需要身份验证的网站上启用 PWA(通过 Cookie 管理的登录令牌)。

我正在本地尝试这个(http://localhost:4502)并为网站登录(并发出登录 cookie)。

问题是当请求 Web 应用清单时,请求上没有发送任何 Cookie,因此请求没有经过身份验证。

<link rel="manifest" href="/content/site-x/manifest.json">

如您所见,清单与包含它的网页使用相同的主机/方案。

清单的请求是否传递了 cookie?我什至将我的登录 cookie 设置为尽可能宽松,但没有。cookie 在所有其他请求(JS、CSS 等)上发送——也许 localhost 有什么特别之处吗?或者它不是http?

标签: javascriptcookiesprogressive-web-appsweb-app-manifest

解决方案


根据https://developers.google.com/web/fundamentals/web-app-manifest/

对清单的请求是在没有任何凭据的情况下发出的(即使它在同一个域中),因此如果清单需要凭据,则必须在清单标记中包含 crossorigin="use-credentials"。

因此,将<link rel="manifest" href="/manifest.json" crossorigin="use-credentials">跨域添加为在清单请求中添加服务器 cookie


推荐阅读