1

アプリケーションと Web ブラウザ間のセッション維持について質問があります。

私は iPhone アプリケーションを開発していますが、このアプリケーションと同じ (ワードプレスの) Web サイトも 1 つあります。

私の質問は、ユーザーが同じモバイル デバイスからアプリケーションにログインしている場合、モバイルの Web ブラウザーにユーザー ログインを表示することは可能ですか?

要するに、このセッションがどこに保存されているか知りたいですか? アプリケーション内またはデバイス内? それがデバイスにある場合、どうすれば Web ブラウザで同じことを確認できますか?

4

1 に答える 1

4

Cookie はデバイスごとではなく、アプリごとに保存されます。Safari には独自のサンドボックスがありますが、各ネイティブ アプリは独自のサンドボックスで実行されます。そうしないと、Safari のセキュリティ モデルが危険にさらされます。

OS X では、Cookie ストレージはすべてのアプリで共有されます。iOS では、Cookie ストレージはアプリごとです
参考:URLローディングシステムについて.

したがって、あなたのシナリオでは、これを機能させる方法は次のとおりです(ただし、試したことはありません):

  1. モバイル アプリで、Safari で Web サイトを開きます。HTTP ヘッダーを送信して、このヒットがネイティブ アプリからのものであることを Web サーバーに伝えます。
  2. すでに Safari 経由でログインしている場合、サーバーはユーザーを識別します。リダイレクト応答を返すようにサーバーをコーディングします (要求がネイティブ アプリからのものである場合のみ)。このリダイレクト応答には、セッション cookie / auth_token が含まれます。また、リダイレクト先は iOS カスタム URL スキームを使用します。myapp://mydashboard
  3. ネイティブ アプリで、アプリをそのカスタム URL のハンドラーとして登録して、リダイレクトを適切にキャッチして処理できるようにします。
  4. ネイティブ アプリからの後続のリクエストで、セッション cookie / auth_token を送信する

それが役に立てば幸い。

于 2013-11-19T06:06:31.517 に答える