【发布时间】:2020-01-02 07:09:55
【问题描述】:
我的公司已经构建了一个中等大小的 Ionic 应用程序,现在我们正在尝试为 Android 和 iOS 提供原生应用程序,但我遇到了持久性 cookie 的问题。
在运行应用程序 Safari 时完全没有问题,cookie 保存得很好,但是在为设备构建时,cookie 没有被保存。
现在的工作方式是当用户登录时,从服务器返回一个 cookie。在此之后,cookie 应该与每个后续请求一起发送,确保用户仍然登录。当我在登录后查看服务器的初始响应时,“set-cookie”标头就在那里。但是,之后的所有请求都不包含 cookie,因此服务器会返回未登录的响应。这仅在 iOS 或 Android 上原生运行时才会发生。
当我调试 cookie 是否被持久化时,我发现没有 cookie。
我知道 iOS 13 也有类似的问题,但我没有使用 iOS 13,我使用的是 iOS 12。我的问题同时出现在 Android 和 iOS 上。在进行 Google 搜索时,我看到的所有解决方法都是针对与我遇到的问题不同的问题,无论如何我都尝试了这些解决方法,但它们不起作用。
以前有人遇到过这个问题吗?任何关于这可能是什么以及如何解决它的想法将不胜感激,我还没有得到任何结果,而且我已经寻找答案好几天了。
同样,由于 cookie 是 HttpOnly 我无法使用 TypeScript 访问,所以我无法在不发送非 HttpOnly cookie 的情况下手动保存 cookie。目前这不是一个真正的选择。
【问题讨论】:
-
我最近遇到了这个问题。我为我的混合应用程序使用通用 cookie。在桌面上一切正常。在 android 上,我发现 document.cookies 不会设置如果字符串值中存在选项...在我对 cookies.set() 的调用中删除选项允许设置 cookie。有谁知道这是为什么?
标签: android ios cordova ionic-framework cookies