2013-05-03 72 views
1

我工作的一個基於移動Web應用程序這主要是Ajax和JavaScript供電。要訪問主頁面,登錄頁面通過發佈數據將數據發送到使用mySQL查詢進行檢查的主頁面。如果登錄有問題,它會返回到登錄頁面,否則它將繼續到主頁面。我試圖找到實現超時的最佳方法,強制用戶重新驗證超過閾值。使用Javascript/PHP頁面超時爲移動瀏覽器

一切都是從通過jQuery和AJAX的主網頁控制,使它們不會在任何時候離開main.html中。我的問題是移動瀏覽器如何處理被最小化或關閉?例如,我在Android設備上使用Chrome,然後登錄到Web應用程序。我做了一些操作,然後儘量減少瀏覽器在手機上做其他事情。 3個小時後,我打開Chrome瀏覽器,並在頁面上繼續顯示我之前做的事情。我該如何攔截並在這段時間後強制他們回到登錄頁面?我正在考慮將登錄時間存儲在cookie中,並在每次調用函數時對其執行檢查,但這看起來不太優雅。

+1

爲什麼不是會話cookie過期,而不是「優雅」? Afaik除了套接字之外沒有其他方法,但是你已經使用了ajax。 – 2013-05-03 14:29:26

+0

你正在考慮cookie ...你有沒有使用過任何東西?你有沒有參加會議?你如何處理這種非移動瀏覽器的情況? – 2013-05-03 14:31:03

+0

我推薦使用cookies,這樣可以更好地管理數據庫,會話也可以正常工作。 – 2013-05-03 14:34:51

回答

0

餅乾可以隨時改變。

這應該是很簡單的,如果你正在使用PHP,只是跟蹤執行的最後一個動作:

$_SESSION['last_action'] = time(); 

然後,當有一個Ajax請求到服務器,檢查值。如果太早,強制用戶再次登錄(所以,響應會返回一些值,表示您需要再次顯示登錄屏幕)。

我假設你現在怎麼樣會議工作,你做start_session()等。

您還可以設置到期日在您的會議,如果你不介意這樣做,但it might not be reliable

+0

會話比較進入ajax調用的所有php腳本嗎? 例如:process_menu.php將有 在session_start(); 如果(時間()<($ _SESSION [ 'login_time'] + 60)){// 過程 } 其他{ 返回重定向呼叫 } – Darren 2013-05-03 16:00:35

+0

我會假設,每個頁面都有評價的一種方式無論用戶是否登錄(至少他們應該)。所以它應該發生。 – MMM 2013-05-03 16:57:46

0

使用會話。不使用cookie。我想你錯過了關於PHP的一些問題。