如題:我自己的邏輯:1.在用戶表中新增一個(gè)字段 is_online(是否已登陸 0 未登陸 1登陸)2.登陸時(shí)判斷此字段是否為1 ,退出時(shí),更新此字段為0
如果用戶非正常退出的情況 (關(guān)閉瀏覽器等) 這個(gè)情況就會沒辦法更新is_online字段
目前想到一個(gè)方法:但是沒有完全理解
就是將session_id存入數(shù)據(jù)庫 登陸時(shí)判斷數(shù)據(jù)庫中的session_id 在服務(wù)器中是否存在?
這個(gè)具體如何操作 請教一下
5 回答

慕桂英546537
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
每次登陸后生成一個(gè)有時(shí)效token,保存在服務(wù)器端和客戶端,每次鑒權(quán)時(shí)只驗(yàn)證這個(gè)token
這樣新的登錄事件發(fā)生后,由于token改變,以前的有效登錄就自動失效了

呼如林
TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
登陸時(shí),將session_id存入數(shù)據(jù)庫 鑒權(quán)時(shí)判斷 數(shù)據(jù)庫中的session_id在服務(wù)器中是否還存在
通過session_save_path()獲取session_id在服務(wù)器中的目錄路徑
//判斷數(shù)據(jù)庫中用戶是否登陸
if($admin['is_online']) {
//如果用戶非正常退出時(shí), 判斷session_id是否存在 如果存在 提示已經(jīng)登陸 ( session默認(rèn)30分鐘失效)
if(file_exists(session_save_path().'\\'.$admin['session_id'])) {
ajaxmsg('此賬號已在其它地方登陸,請先退出后再登陸',0);
}
}
- 5 回答
- 0 關(guān)注
- 635 瀏覽
添加回答
舉報(bào)
0/150
提交
取消