2009-03-03 9 views
4

「サードパーティ」のCookieが無効になっているときにユーザーをログインさせておくための最良の方法は何ですか?私は現在、Firefoxでチェックされているときにうまくいくが、チェックが外されているときは自分のログインページにリダイレクトするFacebook Connect(PHPのみ)アプリケーションを持っている。 Facebookの独自のサンプルアプリケーション(therunaround)でもこれと同じ問題があります。この問題を回避する方法がないのでしょうか?Facebookの接続とサードパーティのCookie

編集:codege3k

@

はP3Pヘッダの束をしようとしました。これまでのサイコロはありません。私は、ユーザーが「接続している」とき...私のインデックスに最初の負荷をリダイレクトするログインページを持って、私はget_loggedin_user()からユーザーIDを取得することができるが、私が更新すると、その関数はnullを返します。クッキーが存在し、ログインページに戻って再び接続をクリックすると、ログインのプロンプトが表示されないので、部分的に動作していることがわかります。 Firefoxで「サードパーティのCookie」を有効にすると、それは魅力的なように機能します。

編集:

サードパーティのCookieが広くサポートされていない場合、ユーザのログインのコンテキストで接続Facebookを利用して処理するための最良の方法は何ですか?私はちょうど働く最初のログインを使用して、自分のサイトのローカルCookieを設定し、毎回Facebookのステータスをチェックする代わりにそれを使用する必要がありますか?

答えて

3

[OK]を、セッションを促進することは動作するようです。

$fbUserId = self::$facebook->get_loggedin_user(); 
if ($fbUserId) 
{ 
    self::$facebook->promote_session(); 
    return $fbUserId; 
} 

編集:

だから、これはすべてのリクエストでセッションを取得しますが、基本的に、サードパーティのCookieが期待どおりに動作するためにFacebookの接続を有効にする必要があります。そのドキュメントから:

ユーザーのブラウザは、クリックの間の接続を維持する ためにはサードパーティのCookieを受け入れる に設定する必要があります。

出典:http://wiki.developers.facebook.com/index.php/Logging_In_And_Connecting

2

私は、サードパーティのCookieと同様の問題がありました。このquestionをチェックして、それはそれはP3Pヘッダを追加することによって解決することができる

を解決するかどうかを確認。

0

ので、サードパーティのCookieを受け入れていないブラウザのためにこれを修正するP3Pの仕事はしますか?私はhttp://bugs.developers.facebook.com/show_bug.cgi?id=5009でFBのバグにコメントしました。

+0

私はP3Pヘッダを持つ大きな違いを見ていません。 Firefoxの「サードパーティのクッキー」が選択されていないと、何に関係なく動作しません。あなたはfacebookから初期値を取得し、必要に応じてローカルcookieを自分で設定することができます。 – typeoneerror

関連する問題