首页 > 解决方案 > 如何避免我的登录 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 应用程序获得持久登录?

标签: ioshttpcookieshttpssafari

解决方案


如果您担心将 cookie 保存在本地存储中不安全,只需使用NSKeychain-- iOS 平台上的系统级本地存储。


推荐阅读