簡體   English   中英

在執行任務時如何限制用戶在瀏覽器中打開多個選項卡?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM