我有我的Django的網站上的觀點具有引導按鈕執行一個重要的操作,操作需要用戶先登錄。禁用UI按鈕餅乾/登錄已過期
然而,在我們的網站這些餅乾的壽命是15分鐘,這意味着登錄的用戶喝杯茶,然後回來並點擊按鈕會認爲操作已經完成,而實際上他/她將會登出。
是否有任何方法通過JQuery檢查或以其他方式檢查cookie是否已過期,並在這種情況下禁用按鈕?
感謝,
阿爾貝託
我有我的Django的網站上的觀點具有引導按鈕執行一個重要的操作,操作需要用戶先登錄。禁用UI按鈕餅乾/登錄已過期
然而,在我們的網站這些餅乾的壽命是15分鐘,這意味着登錄的用戶喝杯茶,然後回來並點擊按鈕會認爲操作已經完成,而實際上他/她將會登出。
是否有任何方法通過JQuery檢查或以其他方式檢查cookie是否已過期,並在這種情況下禁用按鈕?
感謝,
阿爾貝託
這聽起來像你需要跟蹤用戶閒置的時間。當用戶的會話過期時,您可能只想加載登錄屏幕,不是嗎?
這是一個解決方案,可在空閒20分鐘後重新加載頁面。如果您的django應用程序在會話過期後將用戶重定向到登錄屏幕,則該解決方案可以爲您工作。
你可以寫檢查,如果用戶進行身份驗證,並有jQuery來對其執行定期AJAX調用的視圖。如果視圖返回「未登錄」響應,請重新加載頁面或執行其他操作來隱藏按鈕。
這裏有一個簡單的例子:
#The view
def check_if_logged_in(request):
if request.user.is_authenticated:
return HttpResponse('logged-in')
else:
return HttpResponse('not-logged-in')
#The jQuery
function ajax_check(){
$.get(
'the-view-url'
).done(function(response){
if (response === 'not-logged-in'){
location.reload(true);
}
}).fail(
// something else
);
}
setInterval(ajax_check, 15000)
這是一個好主意。我試過了,但問題是如果用戶不活動並且會話已過期,它仍然返回登錄狀態。無法理解爲什麼,與此同時,我正在使用「login_required()」裝飾器來向用戶說明他必須重新登錄。 –
對不起,我有點JQuery的小白。如果用戶瀏覽不同的網站或在他的電腦上做不同的事情,它會起作用嗎? –