2014-09-28 50 views
0

我有一個網站,目前我正在處理客戶端使用Javascript的超時,以便我沒有要求正在作出我登錄用戶出,但我見過人所以建議採用相同的方法,並且我發現它有一個很大的延遲,假設用戶打開了2個選項卡。處理會話在JavaScript或服務器端的超時

Tab 1: 
www.MYSITE.com/welcome.php 

Tab 2: 
www.MYSITE.com/edit_profile.php 

現在,如果用戶在選項卡2,他正在編輯配置文件存在,標籤1處於閒置狀態,這意味着用戶將被註銷/顯示警告(你現在的樣子處理空閒時間)。

所以這似乎並不一致,我認爲它應該在服務器端,我的方法是正確的嗎?

+0

看來,它確實取決於會話的內容以及在特定時間段之後關閉會話的動機。如果這是一個幹/幹安全問題,那麼你只能在服務器上強制執行 - 期間。如果僅僅是爲了檢測一些客戶不活動並且沒有立即的安全問題,那麼檢測客戶端上的活動就很好。 – jfriend00 2014-09-28 06:35:58

+0

@ jfriend00通常我們使用超時時間記錄出人。 – Badddy 2014-09-28 06:44:45

+1

這有多重要?是否存在安全隱患?而且,如果有兩個選項卡打開,並且一個用戶在另一個選項中進行交互時導致註銷,您是否關心?這一切都取決於對應用程序重要的內容。除此之外沒有其他答案。 – jfriend00 2014-09-28 06:54:58

回答

1

的一種方法是,

在Ajax中,每當你向服務器發送的任何請求,服務器上就可以,如果會話過期使用isset($_SESSION['variable'])檢查的情況下,發送SESSION_TIMEOUT &響應然後在Ajax回調,檢查此響應。

如果找到了,向用戶顯示消息'SESSION expired!' &重定向到初始頁面(可能是登錄頁面)。