重载之间的Cookie

时间:2016-04-18 21:17:06

标签: ios swift session-cookies alamofire

我的应用程序中有授权通过POST请求发送到服务器。作为回应,我收到了json文件和cookie。

我希望每次都阻止用户输入凭据。所以问题是如何在应用程序启动之间存储cookie(仅会话cookie)。我关注这3个案例:

  1. 用户按下“主页”并在应用程序被iOS终止之前返回应用程序
  2. 用户按下“主页”并在应用程序被iOS终止后返回应用程序
  3. 用户通过从多任务处理中刷出来强制退出应用
  4. 似乎我可以使用这样的东西: NSHTTPCookieStorage.sharedHTTPCookieStorage().cookiesForURL(NSURL(string: "url")!)

    但它是否安全,是否会在案例2和案例3中持续存在?

1 个答案:

答案 0 :(得分:1)

过去几周我一直在处理类似的iOS问题。

根据凭据的安全性,我建议使用浏览器的localStorage功能解决此问题,而不是使用Cookie。

localStorage和sessionStorage比cookie更容易操作,跨域保护有助于避免用户操纵和第三方尝试。

如果一个人正在处理几乎任何其他浏览器,通常会使用sessionStorage,因为每个会话日志都会保留这些值。但是,移动设备上的iOS会过于频繁地清除会话存储,使其无用。

使用localStorage的危险在于浏览器会话之间的值仍然存在。如果一个合法的用户从第三方设备登录,那么这将成为一个问题,除非用户有办法清除它们(使用javascript很容易实现),否则凭据将保留在该设备上。

使用sessionStorage和localStorage的优点是:
1.与饼干相比易于操作 2.无需继续向服务器发回cookie值 3.减少服务器开销

请注意,特别是在iOS上,如果启用了“私密浏览”,则会禁用会话和本地存储。