Mobile Edge对于Android,Service Worker和身份验证Cookie的302重定向问题

时间:2019-01-17 22:38:11

标签: asp.net-core microsoft-edge service-worker progressive-web-apps

我有一个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。我从该浏览器的服务工作者中删除了所有缓存,但仍然无法使用-我认为我可能根本不需要为其运行服务工作者。


...我的问题是:

  1. 有人拥有在EdgeA中实际可用的PWA吗?
  2. 有人知道我可能错过了什么吗?请注意,正是这台浏览器损坏了,因此可能不是我。
  3. 如果不是他们,我是否有一个我还没有搜索过的地方可以在此可能不太感兴趣的浏览器中报告缺陷?

This听起来很相似,尽管那是跨域的,而我的302不是跨域的。

1 个答案:

答案 0 :(得分:0)

我认为这是由于Edge Android浏览器解释了display:standalone指令并因此打开了一个“独立”窗口而导致的,该窗口不会继承原始浏览器的cookie。

服务器日志显示,在处理来自标准Core 2.2登录内容的“成功登录” 302响应时,EdgeA客户端会“丢弃cookie”。

我的解决方法是为EdgeA浏览器提供特定的manifest.json,使其读取display:browser


与此同时,我修复了该MS发行的EdgeA新版本,因此无法100%确定我的更改是否解决了此问题,或者他们是否真的听了我的抱怨。