我有一个PWA网站,在Windows上的Firefox,Chrome和Edge以及在Android,Edge(EdgeA)上的所有网站上都可以正常运行。
问题 通过查看我的Azure服务器日志,我知道了很多:
(1)登录POST被打入进行身份验证的Core 2.2控制器,并返回302以及包含用户身份验证令牌的标准Core 2.2 cookie集。
(2)EdgeAndroid浏览器收到该消息,并立即获取指定的位置...。除了此GET不包括(1)中的cookie,因此Core 2.2系统以302响应返回登录页面。
这是重定向循环。
-> EdgeA正在吃我的饼干!
我可以在上面的浏览器中完美地运行它,日志显示例如Edge / Windows具有(1)(2)序列完全符合您的期望,第二个请求中包含cookie凭据。
唯一不同的是Edge Android。我从该浏览器的服务工作者中删除了所有缓存,但仍然无法使用-我认为我可能根本不需要为其运行服务工作者。
...我的问题是:
This听起来很相似,尽管那是跨域的,而我的302不是跨域的。
答案 0 :(得分:0)
我认为这是由于Edge Android浏览器解释了display:standalone
指令并因此打开了一个“独立”窗口而导致的,该窗口不会继承原始浏览器的cookie。
服务器日志显示,在处理来自标准Core 2.2登录内容的“成功登录” 302响应时,EdgeA客户端会“丢弃cookie”。
我的解决方法是为EdgeA浏览器提供特定的manifest.json,使其读取display:browser
。
与此同时,我修复了该MS发行的EdgeA新版本,因此无法100%确定我的更改是否解决了此问题,或者他们是否真的听了我的抱怨。