[英]How to restrict user in opening multiple Tabs in a browser while performing tasks?
為了銀行等安全目的,我必須限制用戶打開任何瀏覽器的多個標簽。 我希望用戶僅在瀏覽器的單個選項卡中執行任務。
如果他們嘗試打開多個選項卡,則必須強制注銷其用戶ID。
我不知道該怎么做。
請幫幫我或提供一些邏輯上的幫助。
提前致謝。
首先,我必須同意其他用戶的意見-如果有人打開多個選項卡是安全問題,那么您就有問題了。 大問題。
但是,如果您仍然真的想要這樣做:
用戶登錄時:
// Must be a string
var dateTimeStamp = "" +new Date().getTime();
// This one can be seen by all windows/tabs
localStorage.setItem("timeKey", dateTimeStamp);
// This one can only be seen by the current window/tab
sessionStorage.setItem("timeKey", dateTimeStamp);
現在,當頁面加載時,只需檢查這兩個值是否匹配:
var localKey = localStorage.getItem("timeKey");
var sessionKey = sessionStorage.getItem("timeKey");
// If there is a key:
if (localKey) {
if (localKey !== sessionKey) {
// Handle multiple login here? Redirect to login page?
// Complain about tab?
}
}
然后,當用戶注銷時,請確保您刪除了這兩個鍵。
localStorage.removeItem("timeKey");
sessionStorage.removeItem("timeKey");
警告:
這種編碼有點脆弱,毫無疑問我錯過了一個極端情況。
額外信用
如果有人在新選項卡上登錄,則可以監視對localStorage
更改並強制所有其他頁面注銷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.