2012-03-18 27 views
1

我正在使用PHP和JavaScript SDKs,看到以下問題:如何在php-sdk中檢查有效的會話cookie?

我登錄後,設置了fbsr_ * cookie,關閉瀏覽器,重新打開它並轉到我的應用程序。 Cookie仍然被設置,所以應用程序通過PHP的$ _COOKIE變量獲取它,Facebook類可以提取用戶並進行API調用。

問題是,一旦頁面顯示在瀏覽器中並且調用FB.init,cookie就會被取消設置(通過FB.Cookie.clearSignedRequestCookie()),並且隨後的請求中用戶會突然被註銷。

我想問題是,雖然用戶的狀態實際上不同於「登錄」,這是由JavaScript SDK檢測和「固定」,但cookie仍然有效,但如何檢查這種狀態在PHP中?我真的想避免昂貴的電話登錄URL和解析響應或發送用戶在那裏...

你覺得呢?我在這裏錯過了什麼嗎?解決這個問題的最好方法是什麼?

問候

回答

0

只要你依靠外部方身份驗證提供商,以確保用戶的唯一途徑是登錄是要求供應商。

你只能通過打電話給Facebook來做到這一點,沒有其他方式來檢查這一點。 JS-SDK完全一樣來檢測用戶是否已經登錄。

+0

我實際上是在做一個API調用,它成功了。所以這個cookie似乎是有效的 - 當然,在此時Facebook可能不知道瀏覽器已關閉。 但是有沒有什麼辦法可以區分用戶發出第一個請求的狀態,其中包括一個facebook cookie,然後在實際登錄到facebook後關閉瀏覽器而不從Facebook註銷?我猜JS SDK將cookie的年齡與瀏覽器的正常運行時間進行比較,但這不是我可以觸發服務器端的事情...... – cschramm 2012-03-21 08:46:35