ios - 如何避免我的登录 cookie 被 iOS Safari 删除?
问题描述
我编写了一个简单的 Web 应用程序,它使用登录 cookie 对用户进行身份验证。登录 cookie 配置了最长 15 天的有效期。不幸的是,iOS 上的 safari 会在一天后不断擦除登录 cookie,这需要用户再次登录。这会产生糟糕的用户体验。
这是我的 Web 应用服务器发送的 cookie 标头值的示例。与此问题无关的值通过加密和哈希值进行保护。
Set-Cookie: login=AaC64ZMlykIEakiuXBlszJWhPdeFaMAex1DvzU7hD8Ho24TUQNUJBXG1M_m96DKJ-b4YSPCO; Path=/; Domain=www.example.com; Max-Age=1296000; HttpOnly; Secure; SameSite=Strict
未设置 CORS 标头值。
我选择使用登录 cookie,因为它比在本地存储中存储一些信息更安全,这些信息可以被任何 JavaScript 代码访问。当然,将 HttpOnly 和 Secure 选项与 https 一起使用会更安全。
我该怎么做才能在 Safari iOS 上使用 Web 应用程序获得持久登录?
解决方案
如果您担心将 cookie 保存在本地存储中不安全,只需使用NSKeychain
-- iOS 平台上的系统级本地存储。
推荐阅读
- r - R中不同列划分的滚动平均值
- c - 使 malloc 函数无法正常工作?
- excel - 使用 VBA 获取数据透视表过滤器(页面字段)中列出的所有元素
- php - HTML标记内的PHP TCPDF不需要的空白页
- react-admin - 如何在 ReferenceManyField 组件上设置默认值?
- svelte - Sapper:当导航离开带有 kwes.io 表单的页面时,如何修复“parentNode 为空”?
- c++ - 这是正确的 uint64_t 比较吗?
- asana-api - 如何在 Asana 槽 API 中删除附件
- android - setOnClusterItemClickListener:在集群项 clickListener 错误
- matlab - Matlab - 带有两个图和两个轴的条形图