1

iOS 7 で XAuth クロス ドメイン Cookie トリックを使用しようとしていますが、うまくいかないようです。

以下で Cookie について言及すると、実際には Cookie と localStorage の両方の値が設定されます。

www.client1.com に、一意の ID を持つ Cookie を設定する www.server.com の iframe で静的 Web ページを開くページがあります。次に、www.server.com への iframe を開く www.client2.com をロードする新しいウィンドウ/タブを開き、以前に設定した Cookie から同じ一意の ID にアクセスしようとします。

これは、以前のバージョンの iOS を含め、私が試したすべてのプラットフォームで動作します。ただし、iOS 7 ではありません。

postMessage メソッドを使用して、iframe とメイン フレームの間で情報を送信しています。

iOS 7 で何が変更されましたか? これを回避する方法はありますか?

4

2 に答える 2

2

a.comから提供されるページでホストされているアプリキャッシュマニフェストを使用して、b.comの子iframeで同様の問題が発生していました。キャッシュ マニフェストが Safari によってフェッチされることはないため、子アプリがキャッシュされることはありません。WebViews でも発生しました。

iOS7 には、 Cookie をブロックするための新しいプライバシー/セキュリティ設定があり (以前のバージョンの iOS では Cookie を受け入れるための設定でした)、「Never」に設定する必要があることがわかりました。デフォルトでは、「サード パーティおよび広告主からの」Cookie をブロックします。これが、私のキャッシュ マニフェストがブロックされ、Cookie が保持されない理由です。

私には専門の聴衆がいるので、ユーザーに設定を変更するように指示できます。この贅沢がなければ、リダイレクト fu を使用してドメイン間を切り替え、適切な Cookie がドロップされるようにする必要があると思います。ただし、この方法でも、子 iframe が独自の Cookie を認識できない場合があります。iframe が別のドメインのページでホストされている場合、Safari はそれらの Cookie をブロック (送信しない) することがあります。ただし、これを確認するためのテストは行っていません。

于 2013-10-05T01:57:21.900 に答える
0

参考までに... 私は、iOS7.0 で行われた Cookie の更新に問題があったアプリのプロダクト マネージャーです。ユーザー認証をサポートするために Cookie を使用しています....新しい Cookie ポリシーは、Safari とアプリの両方に適用されます。

この問題は iOS 7.0.3 で解決されたようです

于 2013-10-24T16:50:21.513 に答える