2016-11-11 38 views
0

我用symfony工作2檢查用戶登錄另一個系統問題

我已經檢查用戶登錄或不是從另一系統下面, 場在用戶表:

  1. is_login(tinyint) 1在註銷時
  2. 的時間登錄,0時間
  3. last_login(datetime)在登錄

表的時間內完成進入,以保持所有的登錄日誌 - signup_log:

id(int -11) 
user_id(int-11) 
login_time(dat_time) 
logout_time(date_time) 

在登錄時,如果它是「0」我已經檢查is_login從用戶表以後,我允許登錄到系統中。

有一些問題,上述功能:

  1. 如果用戶登錄到任何系統,並且系統崩潰
  2. 如果用戶不註銷正常(只關閉瀏覽器或系統)

在上述2種情況下,is_login不會設置爲'0'。

我不知道這種情況下該怎麼辦?

+1

如果你使用的是symfony,你應該檢查它以處理用戶,權限和登錄檢查http://symfony.com/doc/current/security.html不確定要理解你的問題,儘管 – Thomas

+0

嘗試在瀏覽器中使用cookie並用用戶標識獲取曲目。如果我們正在關閉,我們就無法做任何事情,因爲那個cookie一直存在,直到它過期。或者你應該給這個cookie一點點時間.. – Abhinav

+0

如果你正在使用symfony,使用[FOSUserBundle](http://symfony.com/doc/current/bundles/FOSUserBundle/index.html)進行認證/登錄/註冊和用戶處理.. – mador

回答

1

對於第2點,我會使用一些看門狗策略。每個用戶操作都會刷新一個時間戳。在服務器端,cron任務檢查tajar時間戳。如果時間戳大於閾值,則認爲用戶已註銷。如果用戶可以花費很長時間閱讀或者不發送請求到服務器,那麼可以通過Ajax調用來獲得更多的控制權,以便刷新時間戳。