我不確定php服務器端Facebook庫是否驗證加載的會話。那麼我想知道是否有最佳做法確保我確實有一個有效的FB會話,而不是一些餅乾改變$ _COOKIE數據。測試Facebook會話是否有效?
$fb = new Facebook();
if($fb->session_expires !== 0 && $fb->session_expires < time()) {
die('bad and/or old session');
}
還是更好地測試用戶的FB ID?
$fb = new Facebook();
if($fb->user) {
die('no Facebook User Id given');
}
編輯: 好,according to facebook通過使用應用程序祕密MD5所有PARAMS和驗證哈希「客戶端庫應該執行爲您的所有必要的驗證」。所以如果你有一個會話 - 這是一個有效的FB生成的(儘管它仍然可以過期)。
假設您登錄到連接應用程序。然後你註銷FB。如果您在該連接應用程序中加載另一個頁面,則FB JS沒有任何機會更改cookie以表明您實際註銷了該cookie。而且由於PHP庫實際上並沒有調用FB來驗證你的會話,所以它也不知道刪除不好的值。
結果是,你有一組有效的FB發送的cookies不再有用。所以你應該嘗試調用一個需要會話的API方法,那麼你的應用將會拋出一個致命的錯誤。
誰知道3年前有一個答案提供的例子。自從(顯然)接受這個測試以來,這是現在做事情的方式。 – Xeoncross 2013-06-12 16:06:47