未随Web App manifest.json请求一起发送Cookie

时间:2018-08-10 00:20:58

标签: javascript cookies progressive-web-apps web-app-manifest

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

我正在本地(http://localhost:4502)进行尝试,并登录该网站(并向其发出登录cookie)。

问题是当请求Web App清单时,没有在请求上发送Cookie,因此请求未通过身份验证。

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

如您所见,清单与包含清单的网页位于同一主机/方案中。

对清单的请求是否传递了cookie?我什至将我的登录Cookie设置得尽可能宽松,但是什么也没有。 cookie是在其他所有请求(JS,CSS等)上发送的-本地主机是否有特殊之处?还是不是http?

2 个答案:

答案 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一样