【问题标题】:Mobile Edge For Android, 302 redirect issue with Service Worker and authentication cookie适用于 Android 的 Mobile Edge,Service Worker 和身份验证 cookie 的 302 重定向问题
【发布时间】:2019-01-17 22:38:10
【问题描述】:

我有一个 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也不是跨域的。

【问题讨论】:

  • 可能是这样的:stackoverflow.com/q/46411192/398513 -> display:standalone 导致旧 Chrome 在单独的窗口或 iFrame 或其他东西中登录后打开一个窗口。如果它正在这样做,那么这可能会导致这种情况。
  • 我很确定这是问题所在。令人困惑的是,如果您通过 Chrome 将站点作为 PWA 安装,EdgeA 会将用户引导至该站点,而不是已安装的 Edge 站点。无论如何,我的解决方法是专门在服务器上检测 EdgeA,并使用 manifest.json 提供它,其中包含 display:browser。这似乎可以防止它崩溃。
  • 从您的上一篇文章看来,您的问题似乎已经解决。我建议您将您的解决方案作为答案发布,并在 24 小时后将其标记为该问题的可接受答案,这可能会在未来帮助其他社区成员解决类似问题。感谢您的理解。

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


【解决方案1】:

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

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

我的解决方法是为 EdgeA 浏览器提供一个特定的 manifest.json,以便它读取 display:browser


同时我修复了这个 MS 发布了新版本的 EdgeA,所以我不能 100% 确定我的更改是否解决了这个问题,或者他们是否真的听了我的抱怨。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    • 1970-01-01
    相关资源
    最近更新 更多