2012-04-13 5 views
1

Facebookのアプリ(iframe)を開発しました。それはうまく動作します。しかし、ユーザーがブラウザで第三者Cookieを無効にすると、アプリは無限のリダイレクトループに入ります。ブラウザでサードパーティのCookieが無効になっているとFacebookアプリが動作しない

私を助けてくれる情報が必要な場合はお知らせください。

+0

この問題を引き起こすために使用するブラウザについての情報をお伝えください。 – Philip

+0

こんにちはフィリップ、私はクロム、ファイアフォックス、サファリを使用しています。 –

答えて

0

本当にクッキーが必要ですか?もしそうなら、残念ながらこれについてあなたができることはあまりありません。アプリで動作するためにCookieが必要な場合は、サードパーティのCookieをサポートする必要があります。ただし、P3Pヘッダーを送信していることを確認してください。サードパーティのiframe Cookie をすべてにするには、サードパーティのCookieが有効になっていても、ブラウザによってはvalid P3P headerが必要な場合があります。

例外:あなたは唯一つの要求が必要な場合

  • 、あなただけのsigned_requestに頼ることができます。
  • Cookieベースのセッションの代わりにURLベースのセッションを使用できます。 PHPは、このためにbuilt-in supportのいくつかの量を持っているが、他の言語/フレームワークと、あなたは、いくつかのより多くの仕事を入れなければならないかもしれません。

私は何をやっていることはOAuthのダイアログにユーザーをリダイレクトしようとしていることを推測しています、そのダイアログはあなたのページにユーザーを戻しているのですよね? OAuthダイアログの後の最初のリクエストでは、signed_requestから認証情報を取得しようとする必要があります。次に、これをサーバー側のセッションに格納し、そのIDをCookieまたはクエリのパラメータに渡したい場合があります。私はPHPとPython SDKの両方がこのようなことをすると信じています。上で述べたように、クッキーが機能しない場合、ユーザーがアプリケーションの周りを移動する際に状態を維持する別の方法を見つけ出す必要があります。

私の正直な推薦は?ユーザーのブラウザでサードパーティ製のCookieを設定できない場合は検出し、そうでない場合はセキュリティ設定で自分のようなクールなアプリケーションを使用できないというエラーページを表示してください。

+0

ありがとうアンドリュー、私はあなたの最後の文ですでに推奨を実装しましたが、プロジェクトの他の利害関係者はそれを好まない。 Facebookアプリケーション(iframe)が数多くあり、そのほとんどは第三者のCookieが無効になっている場合でも動作するため、修正する方法はいくつかあるはずです。 –

+0

セッションを必要とするアプリケーションは、URLとPOSTパラメータでセッションIDを渡さない限り、動作しません。それ以外の場合は、セッションを使用する必要のない非常にシンプルなアプリがあります。 – AndrewF

0

サードパーティのCookieが無効な場合、セッションは動作しません。また、session_idもCookieとして保存されます。

関連する問題