我正在尝试在需要身份验证的网站上启用PWA(通过Cookies管理登录令牌)。
我正在本地(http://localhost:4502)进行尝试,并登录该网站(并向其发出登录cookie)。
问题是当请求Web App清单时,没有在请求上发送Cookie,因此请求未通过身份验证。
<link rel="manifest" href="/content/site-x/manifest.json">
如您所见,清单与包含清单的网页位于同一主机/方案中。
对清单的请求是否传递了cookie?我什至将我的登录Cookie设置得尽可能宽松,但是什么也没有。 cookie是在其他所有请求(JS,CSS等)上发送的-本地主机是否有特殊之处?还是不是http?
答案 0 :(得分:0)
这些年来似乎应该修复old a bug in chromium。也许您可以尝试将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">
对于您而言,我猜这对您没有帮助,因为您来自同一起源。
答案 1 :(得分:0)
根据https://developers.google.com/web/fundamentals/web-app-manifest/
对清单的请求没有任何凭证(即使它在同一个域中),因此,如果清单需要凭证,则必须在清单标记中包含crossorigin =“ use-credentials”。
因此,为两个跨域添加<link rel="manifest" href="/manifest.json" crossorigin="use-credentials">
就像在清单请求中添加服务器Cookie一样