2009-03-03 89 views
4

當「第三方」cookies被禁用時,保持用戶登錄的最佳方式是什麼?我目前有一個Facebook連接應用程序(僅限於PHP),當我在Firefox中進行檢查時,它非常適用,但在未選中時會重定向到我的登錄頁面。即使Facebook自己的示例應用程序(therunaround)也有這個未選中的問題,所以我想知道是否沒有辦法解決這個問題。Facebook連接和第三方cookie?

編輯:

@ codege3k

嘗試了一堆P3P頭。目前爲止沒有骰子。當用戶「連接」......第一個加載時,我有一個登錄頁面重定向到我的索引,我可以從get_loggedin_user()獲得用戶標識,但是當我刷新時,該函數返回null。 Cookie存在,當我回到登錄頁面並再次單擊連接時,它不會提示我進行登錄,所以我知道這是部分工作。在Firefox中啓用「第三方cookie」後,它就像魅力一樣。

編輯:

什麼是處理Facebook在用戶登錄的情況下連接,然後如果第三方cookie沒有得到廣泛支持的最好方法?我是否應該使用初始登錄工作併爲我自己的站點設置本地cookie,並使用它來代替每次檢查Facebook狀態?

回答

3

好的,促進會議似乎工作。

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

編輯:

所以這得到在每次請求的會議,但本質上,第三方Cookie必須啓用Facebook Connect來達到預期效果。從自己的文件:

用戶的瀏覽器必須設置爲 接受第三方的cookie,以便 它連接點擊之間保持。

來源:http://wiki.developers.facebook.com/index.php/Logging_In_And_Connecting

2

我的第三方cookie有類似的問題。檢查此question,看看它是否解決

它可以通過添加p3p標頭解決。

0

因此,沒有P3P工作,以解決這一問題爲不接受第三方Cookie的瀏覽器?我在http://bugs.developers.facebook.com/show_bug.cgi?id=5009上評論了一個FB錯誤。

+0

我還沒有看到與P3P標題有太大的區別。在Firefox中未選擇這些「第三方cookie」的情況下,無論如何,它都不起作用。您可以從Facebook獲得初始值,並根據需要自行設置本地cookie。 – typeoneerror 2009-06-19 17:37:02