2013-07-22 42 views
0

這可能是一個非常簡單的問題,但我似乎無法找到解決方案。Facebook的getUser返回null,但只有第一次請求

我正在使用Facebook登錄來驗證用戶身份。有時候這會失敗。他們第一次點擊「使用Facebook登錄」按鈕,服務器沒有從Facebook獲取任何數據($user爲空)。有趣的是,當用戶在這之後再次使用按鈕時,一切都很好。然後,在整個瀏覽器關閉之前,您可以完全註銷並登錄,而不會出現任何問題。

if ($user) { 
    try { 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

回答

0

聽起來就像您正在使用JS和PHP SDK的組合。

如果用戶使用JS SDK進行登錄,則會發生這種情況,因爲服務器端代碼不會讀取在第一次刷新頁面之前設置的cookie。如果用戶成功登錄以提供新用戶標識,或者強制刷新頁面,則可以進行ajax調用。

+1

強制頁面刷新的伎倆:

我通過改變以固定它。非常感謝! –

0

僅供參考。

我有同樣的問題,因爲我正在初始化session_start();包括我的fbaccess.php文件之前,請使用 。

include('./fb/fbaccess.php'); 
session_start();