15

我有一个使用 cookie 进行身份验证的 iphone(基于 jqtouch)网络应用程序。使用流程如下:

  • 用户转到移动登录页面,并被指示将该页面保存为主页上的书签。

  • 他们启动小书签以转到登录页面以登录并获取 cookie。

  • cookie 有效,他们可以浏览整个网站。

  • 但是,此会话 cookie 不是持久的。如果他们离开 safari,然后使用保存的书签重新启动,则在他们上一次会话期间设置的 cookie 将消失。

  • 只需使用 safari(即:直接启动 safari 而不是通过书签)来导航页面就可以正常工作(即:启动 safari,转到 url,登录,重新启动 safari,返回 url)。

  • 我发现创建小书签时处于活动状态的 cookie 是持久的,但是在通过小书签访问 safari 时会话期间设置的任何 cookie 都不是持久的。

  • 我想知道这是否是 safari/iphone 问题和/或是否有任何解决方法。非常感谢您提供的任何见解。

4

2 回答 2

2

K,对于遇到同样问题的任何人,我通过使用 html5 的本地存储找到了解决方法。我只需要使用 javascript 在设置 cookie 时根据 cookie 值设置存储,并在加载第一页时根据存储值设置 cookie。

于 2010-03-24T00:00:51.427 回答
0

我已经在我的一个应用程序中尝试过。我以这种方式尝试过:

  1. 用户登录,他的 cookie 被设置到 sharedHttpCookieStorage 中。
  2. 根据您的 URL 检查 cookie,获取其值并将其保存在应用程序的存储中。
  3. 下次用户想要使用您的应用程序时,请检查您的存储中是否有任何 cookie 值。如果是,则使用这些值创建一个 cookie,否则让他再次登录。
  4. 确保在用户注销或 cookie 过期日期到达时清除 cookie 值。

我知道这听起来很困难,但实际上很容易。你所需要的只是苹果关于 NSHTTPCookie 的文档。

于 2012-06-08T11:10:09.643 回答