1. 程式人生 > >WEB系統防止同一賬號,同時在多個不同裝置登入。

WEB系統防止同一賬號,同時在多個不同裝置登入。

方案一、在使用者表新增三個欄位分別儲存,使用者登入口令、上次登入IP地址、上次登入時間,在登入成功後,生成唯一使用者登入口令,把使用者登入口令、上次登入IP地址、上次登入時間儲存到SESSION,並相應的儲存到使用者表。然後提示使用者 上次登入IP地址、上次登入時間。(也可以把IP地址轉為具體地區展示)

方案二、判斷是否已經登入時,先判斷是否登入狀態? 再讀取SESSION的使用者登入口令,如果登入口令不為空,則把登入口令的值與使用者表的登入口令比較,若不一致,則提示使用者“您的賬號在其他裝置登入”,並且退出登入(清楚登入狀態)

方案三、同時使用servletContext和cookie儲存使用者資訊 ,通過servletContext判斷使用者是否登入,和cookie判斷使用者是否在同一裝置登入。
提供方案三程式碼:
LoginServlet

ServletContext sc = getServletContext();
Cookie[] cookies = httpRequest.getCookies();
boolean flag = false;
for(int i = 0; i < cookies.length; i++){
    String key = cookies[i].getName();
    if(userId.equals(key)){
        flag = true;
    }
}
String old_session = (HttpSession)sc.getAttribute(userId);
if
(old_session != null){ if(!flag){ SystemOut.out.println(“該使用者已在其他裝置登入!”); return false; } } //使用者登入成功 sc.setAttribute(userId,"使用者"); Cookie cookie = new Cookie(userId,"使用者"); httpResponse.addCookie(cookie);

登出登入
LogOutServlet

ServletContext sc = getServletContext();
sc.removeAttribute(userId);
//刪除Cookie
Cookie cookie = new Cookie(userId,"使用者"); cookiesetMaxAge(0); httpResponse.addCookie(cookie);

“`

相關推薦

WEB系統防止同一賬號同時不同裝置登入

方案一、在使用者表新增三個欄位分別儲存,使用者登入口令、上次登入IP地址、上次登入時間,在登入成功後,生成唯一使用者登入口令,把使用者登入口令、上次登入IP地址、上次登入時間儲存到SESSION,並相應的儲存到使用者表。然後提示使用者 上次登入IP地址、上次登入

Web專案防止同一賬號不同session下重複登入

一、session簡介 瀏覽器在請求伺服器時,伺服器都會建立一個session,session負責瀏覽器與伺服器之間的會話。session的存在是為了維護瀏覽器和伺服器之間互動時保留一些互動資料,例如使

web.xml中同一servlet/filter配置url-pattern

若你的servlet要多個地址,或你的filter需要過濾不同的url如有*.jsp,*.do等,有好幾個怎麼做呢 其實很簡單,以下的filter就是一個例子,encodingFilter配置了過濾了兩個url-pattern <filter> <f

你有想過在同一臺服務器中同時開幾tomcat嗎

clas java_home tlab ats 裏的 linux中 成了 配置jdk 記錄 tomcat作為許多java項目的運行的環境,常用來跑java項目。而一臺服務器只跑一個tomcat服務又太浪費資源了,so,我們可以在同一臺服務器上,同時跑多個tomcat服務進程

同一臺伺服器部署WEB應用SESSION衝突的解決方法

  由於一臺伺服器上使用Tomcat部署多個WEB專案,而專案因為用到框架都是一樣的,導致同時執行,session相互衝突,這個登入後,那個就得重新登入,造成了使用不方便,解決辦法如下: 在server.xml檔案,host的標籤頁下,加上Context標籤,標籤內容可以這樣寫: <Contex

同一臺服務器啟動redis實例

ports ping spa margin span wan opp clas then 該腳本放到/etc/init.d/下,命名為redis #!/bin/sh #chkconfig: 2345 10 90 #description: Startup and stop

Fast Flux技術——本質就是跳板控制機器同一域名指向極的IP(TTL修改為0)以逃避追蹤

using sea 地址 3.2 網站 nslookup 不知道 維基百科 run 轉自:http://ytuwlg.iteye.com/blog/355718 通過病毒郵件和欺詐網站學到的對付網絡封鎖的好東西:Fast Flux技術 收到一封郵件,引起我的好奇了: 郵件標

appium+python自動化60-windows上同時啟動appium服務android機器並行運行

pre tps yam rom 啟動app 技術分享 AI 如果 aapt 前言 做android自動化的時候,啟動一個appium服務,只能匹配一個手機去自動化執行。有時候想同一套代碼,可以在不同的手機上執行,測下app在不同手機上兼容性。 這就需要啟動多個appium服

Selenium Java Web 自動化實踐總結(七)如何切換同一瀏覽器開啟的視窗

瀏覽器每個頁面都有一個標識:控制代碼,Selenium 裡面的內建方法getWindowHandles() 獲取當前控制代碼數。返回一個集合。 // 得到當前視窗的set集合 Set<String> winHandels = driver.getWindowHandles(); //

談談對localStorage,sessionStorage的瞭解及如何在一個瀏覽器同時登入不同賬號

簡介 HTML5中的web Storage包括了兩種儲存方式: localStorage和sessionStorage。localStorage用於 儲存一個域名下的需要永久存在在本地的資料,這些資料可以被一直訪問,直到這些資料被刪除。sessionStorage用於本地儲存一個會話中的資料

在Linux系統配置Nodejs環境的最簡單步驟部署thinkjs(nodejs)專案

發現一臺伺服器部署管理多個nodejs服務,可以採用二級域名weekly.mwcxs.top,也可以採用固定字尾www.mwcxs.top/weekly的方式,本文先從固定字尾的方式部署管理多個nodejs服務。 1、去官網下載和自己系統匹配的檔案: 建議去英文網站下載 ,因為中文這邊沒有

OpenCV練習:嘗試同時提取不同的顏色物體比如同時提取紅綠三不同顏色的物體

python: 1.先是通過 import cv2 import numpy as np red = np.uint8([[[255,0,0]]]) hsv_red=cv2.cvtColor(red,cv2.COLOR_BGR2HSV) print hsv_red green=np.ui

ajaxFileUpload.js 無重新整理上傳圖片支援引數同時上傳支援 ie6-ie10

ajaxFileUpload 無重新整理上傳的原理: 在頁面動態建立 form 表單和 ifram 貞,設定 form 表單提交的目標為 ifram 貞, 將檔案域和要 post 的引數動態寫入 form 表單中,然後提交 from 表單。 通過 window.attach

vue專案在同一頁面中引入echarts圖表 並實現封裝自適應和動態資料改變

vue-Echarts公司最近做專案需要用到圖表,以前是使用echarts,現在也是用這個,沒什麼好糾結的! 但是最近發現以前每次做圖表之類的都沒有封裝,每次做圖表都要從新去配置之類的,寫了好多重複程式碼,感覺很累啊,所以自己把圖表封裝成子元件使用,程式碼工作量減輕了很多,而

Plupload 上傳詳細講解Plupload 實例上傳Plupload上傳按鈕--推薦使用

.html 目前 clas 路徑 arc 我們 參考 等等 選擇 今天幫朋友解決 Plupload 上傳的問題,查了很多資料,資料還是挺全的,但是有點零零散散的,故整理好,合並發出來。 本教程包括: Plupload 上傳詳細講。 Plupload 多實例

jq給同一元素綁定事件

cli 如果 pan blog data 定義 mouse nbsp click $(".aa").on("click",function(){ alert(1) }).on("mousemove",function(){ cons

sql存儲過程根據條件查詢返回一個dataTable或者DataSet

bold new exc cnblogs 所有 sql存儲過程 存儲 ring table 不廢話,先直接代碼 首先sql部分(我在這裏加了一個@zx作為判斷,一般不需要這個參數): ALTER Proc [dbo].[Proc_Boss_Show] @StrIndex

同一臺機器上tomcat啟動造成的內存溢出問題的解決方法

-xms maxperm size blog 內存溢出 max gpo 解決 rms 加下面這句話就行了,我是WIN10+雙tomcat+nginx(本地站點),無壓力。在編譯器的vm option裏面加哦。 -server -Xms512m -Xmx1024m -X

1.復選框選中的做法

選擇 img 數據 分享圖片 body key log 分享 提交 Name:是要提交到action當中的多個id形成的集合 List:是從action中傳過來的數據,用來展示的數據 Listkey:是選擇的項, Listvalue:是要顯示的部分。 1.復選框,選中多

在GET方式下參數時的處理

body getname ron 自動 arr tro rest 封裝 from 在一個查詢接口中,需要的參數比較多,如果還是使用GET方式進行請求的話,那麽,Controller 中的方法的參數列表將會非常多,如: public List<String> g