關於乙個賬號不可同時登入的問題 前端

2022-09-03 13:06:11 字數 815 閱讀 8419

oa系統,乙個賬號不能兩個地點同時登入。

實現:登入,登出,關閉瀏覽器向後台傳送賬號狀態。

難點:系統為vue+elementui+axios(sessionstorage儲存token)技術,登入、登出按鈕click無難度,重難點為關閉瀏覽器傳送登出狀態。

1、關閉瀏覽器發狀態不能使用axios(不能是非同步請求),vue技術不再引用jquery(即不使用ajax),所以請求部分用到原生ajax五部曲完成(不需要處理返回引數所以不需要五部)。

let urlo = "介面" //(get請求的引數直接拼接在連線上)

let obj =  json.stringify()// (post請求的引數)

xhr.open('post',urlo,false) //(第乙個引數為請求型別,第二個引數為介面位址,第三個引數為是否非同步)

xhr.send(obj) //get請求直接為 xhr.send()

2、關閉瀏覽器事件與瀏覽器重新整理事件重疊

關閉與重新整理同時有的事件:beforeunload,unload

重新整理時獨有的事件:load

這裡由於需求比較急,且查詢的screenx的方法以及比較重新整理和關閉瀏覽器兩個事件時間差值都無用,所以用了乙個效能不太好的方法(關閉時發乙個請求,重新整理時發兩個請求),後續會做相關優化。

具體方法:

1)在beforeunload事件裡傳送未登入狀態碼

2)在load事件裡傳送已登入狀態碼

3)注意在登入頁面的重新整理情況,因為用的vue技術所以用 this.$route.path 來判斷

兩個賬號同時登入,後登入的賬號將前乙個賬號擠掉

最近有個小專案要求實現相同的賬號不能同時登入,如果有兩個賬號 一樣 登入,那麼後登陸賬號能擠掉前乙個賬號,像webqq那樣被擠掉的賬號還要有通知。當時首先想到的是有沒有一種方法是這樣的 乙個客戶端有乙個賬號在登入,首先判斷該賬號是不是已經登入,如果有通知伺服器該客戶端有同樣的賬號登入,然後再發訊息給...

OpenVP共用賬號 乙個賬號多台電腦登入

使用 duplicate cn,允許兩個具有相同公用名的連線,因此乙個證書可以由多個連線 使用者使用.如果沒有 duplicate cn,每個證書必須擁有自己的cn,因此每個連線 使用者都有乙個唯一的證書.max clients limit max clients 10 internally rou...

如何實現乙個賬號僅能乙個終端登入呢

使用者id 使用者登入session id 使用者每次登入都將session id存入到 memcache redis 每次操作都驗證一下當前使用者是否對應session id。否則就踢下線。拓展 可以將 server資訊儲存起來,使用者每次登入都提示一下,可以知道自己賬號是否安全!在賬戶表的基礎上...