我發現Code Igniter已經有ci_sessions表存儲用戶會話id。我瞭解該表的主要目的。只是我想澄清我如何使用我當前的用戶登錄會話ID驗證ci_session表數據?如何使用數據庫存儲的會話ID驗證當前用戶會話ID?
基本上,我試圖做一次用戶登錄一個地方。多重登錄被阻止。我怎樣才能做到這一點?
我發現Code Igniter已經有ci_sessions表存儲用戶會話id。我瞭解該表的主要目的。只是我想澄清我如何使用我當前的用戶登錄會話ID驗證ci_session表數據?如何使用數據庫存儲的會話ID驗證當前用戶會話ID?
基本上,我試圖做一次用戶登錄一個地方。多重登錄被阻止。我怎樣才能做到這一點?
由於從其他位置登錄會在該新位置創建新的會話ID,因此您無法使用會話ID進行此操作。
將用戶標識存儲到會話中,然後在登錄時進行檢查。
$this->db->where('userId',$userId);
$result = $this->db->get('ci_session');
if($result->num_rows() > 0)
{
//log out old user, throw error, whatever
} else {
//continue with login
}
通過存儲會話數據的用戶ID和添加它作爲會話表中的列,你在創建會話數據之前可以去除登錄該用戶ID的所有會話。這將使同一用戶的任何會話無效。如何做到這一點的進一步解釋,請看這裏:https://stackoverflow.com/a/9564433/89211
我做了每個用戶登錄的會話ID並交叉檢查用戶的會話ID並強制/銷燬它 – logudotcom 2013-03-11 14:04:47
sessionId不是特定於特定用戶並且它是獨一無二的,不完全確定你做了什麼,但很高興你將它分類。 – 2013-03-12 12:14:42
我正在爲每個用戶生成會話ID並在登錄時進行檢查 – logudotcom 2013-03-12 12:28:18