簡體   English   中英

$ facebook - > getUser()返回錯誤的值?

[英]$facebook -> getUser() returns wrong value?

問題與標題相同。 我正在使用最新的php-sdk(v3.1.1)來運行服務器端身份驗證流程。

我在Chrome中有2個標簽,一個是我的Facebook頁面,另一個是php測試頁面。 這兩個問題多次發生:

  • $facebook->getUser()即使在我登錄時仍然返回0。
  • 即使我退出, $facebook->getUser()仍然會返回一個ID。

我必須解決這個問題:嘗試使用提供的access_token啟動圖形API請求,並檢查$response->error->type == "OAuthException"以確保是否存在活動會話。

有沒有辦法使用$facebook->getUser() “穩定”? 我通過SO搜索了很多,但還沒找到php-sdk 3.1.1的最佳答案。

非常感謝任何幫助。 謝謝。

  1. 登錄。 根據FB SDK的文檔示例,即使您已注銷, getUser()也會返回userId,但具有與FB帳戶關聯的cookie。 要檢測用戶是否已登錄,您應該使用

     $user = $facebook->getUser(); //Check Access token if ($user) { try { $user_profile = $facebook->api('/me'); } catch (FacebookApiException $e) { $user = null; } } if ($user) { //logged-in } else { //not logged-in } 

    要登錄您的應用程序,請通過關注此網址(請確保您根據應用程序執行的預期操作傳遞范圍) ,讓用戶登錄您的應用程序而非相鄰選項卡:

     $loginUrl = $facebook->getLoginUrl( 'scope' => ... ); 
  2. 登出。 似乎您的PHP服務器正在為每個會話存儲一些訪問權限值,因此即使您在瀏覽器中注銷,您的服務器仍然可以使這些令牌有效。 實際上,我不知道,它是錯誤還是功能,但在用戶注銷后它們不會被Facebook銷毀。

    要破壞這些令牌我正在使用這些:

     $facebook->destroySession(); 

    每當用戶通過$facebook->getLogoutUrl()注銷時,我都會調用它;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM