2012-04-05 103 views
1

如何識別用戶未使用jQuery或JavaScript單擊註銷按鈕而未註銷。如何識別用戶未點擊註銷按鈕而未註銷?

這裏我需要註銷按鈕才能在用戶沒有註銷時按下瀏覽器中的後退按鈕返回上一頁。

這裏是我的註銷按鈕:

<a id="webviewbtn" href="#"><img src="img/logout.png" style="float:right;" /></a>

+0

如果用戶沒有單擊註銷按鈕,那麼肯定用戶沒有註銷正確?或者你的意思是完全不同? o_O – 2012-04-05 08:58:35

+0

我需要它的我的previoues頁面註銷功能將出現 – Raj 2012-04-05 09:00:14

+0

你的意思是跟蹤用戶的狀態?你需要使用服務器端語言幫助 – 2012-04-05 09:01:27

回答

0

當進行任何形式的在您的網頁的作用,有一個方法調用異步或同步即驗證用戶web服務。

如果服務器返回okay消息,則用戶仍然會登錄。此操作可以在呈現註銷按鈕時執行,也可以在用戶執行任何其他「重要」操作時執行。

您還可以將信息存儲在具有到期時間的cookie中。然後這可以被管理,如果你在瀏覽器中按下後退按鈕,cookie被清除並且用戶被註銷或你有什麼。

這個實現有很多的可能性,不幸的是我沒有一個「最佳實踐」的案例在這裏爲您提供。

+0

不幸的不是。我在概念基礎上爲您提供解決方案,而不是使用代碼。你必須編寫一個適合你的需求的實現,不要修改我的代碼,以便它適合。 – 2012-04-05 09:33:55

1

我更喜歡一種方法,它不需要對服務器的異步調用來節省資源。

一旦你登錄你的系統將設置一個cookie與會話ID。你也可以通過後臺設置一個cookie,這可以用來確定客戶是否登錄。

//using php here 
setcookie('customer',1); //customer is logged in 

setcookie('customer',0); //customer is not logged in 

在您的前端,您可以使用jquery/javascript來檢查該狀態。我假設在這裏你有jQuery的cookie的插件包括https://github.com/carhartl/jquery-cookie

if ($.cookie('customer') === 1){ 
    $('#webviewbtn').show(); //show logout button 
} 
else{ 
    $('#webviewbtn').hide(); //no logout button needed 
} 
在SZENARIO它是非常重要的

,該「顧客」的cookie具有相同的域名和時間相同的會話cookie。否則,返回客戶可能會將客戶Cookie設置爲1,但會話Cookie已過期。此外,客戶所要求的所有操作都需要在後端進行驗證,以驗證州客戶=== 1在那裏仍然有效。否則,你有一個很大的安全問題,因爲每個人都可以將該cookie設置爲1 :)

+0

雅..我會盡力。謝謝你的信息 – Raj 2012-04-09 04:16:59