15

認証に Cookie を使用する iPhone (jqtouch ベース) Web アプリがあります。ご利用の流れは以下の通りです。

  • ユーザーはモバイルのランディング ページに移動し、そのページをブックマークレットとしてホームページに保存するように指示されます。

  • ブックマークレットを起動してログイン ページに移動し、ログインして Cookie を取得します。

  • Cookie が機能し、Web サイト全体をナビゲートできます。

  • ただし、このセッション Cookie は永続的ではありません。Safari を離れて、保存したブックマークレットを使用して再起動すると、以前のセッションで設定された Cookie は失われます。

  • Safari を使用するだけで (つまり、ブックマークレットではなく直接 Safari を起動する)、ページをナビゲートするだけで問題なく動作します (つまり、Safari を開始し、URL に移動し、ログインし、Safari を再起動して、URL に戻ります)。

  • ブックマークレットが作成されたときにアクティブだった Cookie は永続的ですが、ブックマークレットを介してサファリにアクセスしたときにセッション中に設定された Cookie は永続的ではないことがわかりました。

  • これが safari/iphone の問題であるかどうか、および/またはこれを回避する方法があるかどうか疑問に思っています。あなたが提供できる洞察に感謝します。

4

2 に答える 2

2

K さん、同じ問題に遭遇した人のために、html5 の localstorage を利用して回避策を見つけました。Cookie が設定されているときに Cookie 値に基づいてストレージを設定し、最初のページが読み込まれたときにストレージ値から Cookie を設定するために JavaScript を使用する必要がありました。

于 2010-03-24T00:00:51.427 に答える
0

I have tried that in one of my applications. I have tried this in this way:

  1. The user logs in and his cookie is set into the sharedHttpCookieStorage.
  2. Check the cookie against your URL, get its values and save it in your application's storage.
  3. Next time user wants to use your application, check if there is any cookie values in your storage. If Yes then create a cookie with those values else get him to log in again.
  4. Make sure to clear the cookie values when the user logs out or the cookie expiration date reaches.

I know it sounds difficult but infact is really easy. All you have to go through is Apple's documentation on NSHTTPCookie.

于 2012-06-08T11:10:09.643 に答える