2013-01-07 36 views
0

之前,我對於沒有任何初始代碼來支持這個問題Authlogic jQuery的警報logged_in_timeout

我有authlogic設立了20分鐘後logged_in_timeout道歉。我想要做的是構建一個jQuery函數,它將從我的用戶模型中提取'last_request_at'值,然後運行一個計時器,在18分鐘時提醒用戶「您即將被註銷」。

Can jQuery pull directly from the DB, or should I pass a session to the function? 

然後,我想在模型/警報「Log Me Out」或「Stay Logged In」中有兩個按鈕。

If the user clicks "Stay Logged In" how would I have jQuery update the last_request_at field in the DB? 

回答

0

我剛使用coffeescript來完成這項工作。

setTimeout (-> 
    setTimeout (-> 
     parent.location.reload true 
    ), 70000 
$('#inactivity_modal').modal() 
    $("#inactivity_modal").bind "hidden", -> 
    parent.location.reload true 
    ), 540000 

在我的應用程序中,用戶自上次請求後10分鐘自動註銷。因此,在9分鐘(54000毫秒)的時間內,該功能激活一個包含兩個按鈕的模式;一個註銷,一個保持登錄狀態。保持登錄按鈕只是關閉模式並刷新父級,從而更新Authlogics last_request_at字段並給用戶另外9分鐘,直到再次發生。當然,任何時候頁面加載計時器都會被重置,因此任何活動的用戶都不會看到模態。如果用戶沒有對警告模式做出響應,Authlogic會在一分鐘後(10分鐘)結束會話,10秒後(70000)會刷新父頁面以隱藏上一頁中可能已經顯示的任何內容。