2016-07-23 217 views
0

我的一個項目中登錄系統使用我自己的登錄系統和Facebook登錄。問題是Facebook登錄似乎沒有在MAC設備上註銷。爲Mac設備設置cookie過期的正確方法

我的代碼

session_start(); 

if(isset($_COOKIE['checkuserst'])) { 
unset($_COOKIE['checkuserst']); 
setcookie('checkuserst', '', time() - 3600, '/'); 
} 

unset($_SESSION['username']); 

header("Location:index.html"); 

所有窗口瀏覽器除了Safari和在Mac沒有瀏覽器的cookies即將到期的餅乾到期。

有人可以指出正確的方法來解決這個問題。

+0

可以準確說明你希望看到什麼和發生了什麼呢? – BeetleJuice

+0

@BeetleJuice所有的Windows瀏覽器cookies都將過期,除了safari和mac,瀏覽器的cookies都不會過期。 – Jordyn

回答

1

您不應該依靠瀏覽器中的cookie過期來確定用戶是否已註銷(因爲用戶容易製造欺騙性cookie)。將會話到期存儲在$_SESSION或數據庫中。當您收到請求時,即使存在Cookie,也要先檢查服務器存儲器中的匹配cookie,並確保它未到期。

這樣在瀏覽器(如瀏覽器不刪除過期的cookie),無論發生什麼事不會影響你的服務器端安全

+0

@感謝您的解釋,但我的直接問題是,cookie不會在mac設備上過期。 。 – Jordyn

+0

@Jordyn幫助我理解爲什麼這對你很重要。爲什麼這是一個問題?消極影響您的網站? – BeetleJuice

+0

由於cookie不會過期,因此mac用戶無法註銷。這是問題。 – Jordyn