使用者非正常退出

2021-09-29 04:36:29 字數 929 閱讀 8656

判斷使用者非正常退出使用場景。比如:乙個賬號不能重複登入,這時就需要判斷使用者登入狀態。

非正常退出情況:

1.伺服器端系統異常。

2.會話超時。

3.未退出的情況下,關閉瀏覽器。

4.使用者網路不穩定掉線。

5.使用者在登入的狀態下,關機(掉電)了

通常的做法是 允許重複登陸,但是上乙個會話就終止了(擠掉上乙個使用者)

改變使用者登入狀態。或者清空使用者登入資訊。httpsession.removeattribute("now_user");

將使用者資訊儲存到session 中。當這個session銷毀時。改變使用者登入資訊。這裡使用乙個httpsessionlister這個***。監聽session的銷毀。銷毀時進行你所需得操作(改變使用者登入狀態資訊)。

就是前端寫個定時器。定時向伺服器傳送請求。每次請求改變登入資訊的時間。定時重新整理這個時間。其他使用者登入的時候看登入狀態和重新整理的這個時間。

詳細:解決辦法是登入狀態字段不僅存乙個數字代表狀態,還要存乙個時間字段,用自定義分隔符隔開。然後需要在index,js中寫乙個定時器,定時向指定路由傳送資料報,該路由執行的就是對資料庫登入欄位的寫操作,定時重新整理時間。當有其他使用者登入已登入賬戶、上次異常退出賬戶及已超時退出賬戶、正常退出賬戶時,只需要對登入欄位的狀態和時間進行判斷。獲取當前時間與該時間做差,比較時間是否超過定時器的間隔時間的整數倍(1、2..),即可。

隱患問題是:在他人異常退出後,可能需要再次正常登入該賬號需要乙個時間差,不是可以立即登入,因為可能需要上文設定的等待時間間隔(最長等待時間為上文的時間間隔)。

使用webscoket 定時與 伺服器通訊。與方法一差不多

使用快取,如redis,使用驗證token的方式設定過期時間。每次發來請求都攜帶token,判斷token是否存在。每次新登陸都會有乙個新token,但是對應的使用者的是同乙個。就可以剔除掉之前的使用者或者阻止新使用者登入。

Linux上vi編輯檔案非正常退出後檔案恢復

vim另存檔案的命令為 編輯完檔案後esc,輸入以下指令 w filename 編輯檔案時非正常退出,會生成.hello.txt.swp的檔案,還有一些其他資訊 恢復檔案要使用以下命令 keysystem localhost 20180202 vim r hello.txt 按照提示回車即可。然後儲...

處於停機等非正常狀態 裝置非正常停機管理指導辦法

裝置非正常停機管理指導辦法 一 裝置非正常停機的範圍 維護 維修不良 未遵守 裝置維護及維修規程,導致維護 維修質量無法滿足裝置執行的技術 環境要求而造成的設 備停機,例如 未按維護保養計畫保養 維護質量不到位 違章檢修,故障維修不徹底,潤 滑缺油或變質等。違章操作 未按照裝置操作規程及作業檔案等操...

非正常企業資料續

第二次改進思路 1 首先對zzsfp表進行資料清洗,去重後得到4223334條資料 2 然後根據nsrxx和上面清洗後的檔案連線起來,分離出出銷發票表和進購發票表,目的是去除掉那些識別號在企業表中找不到的發票資料 屬性列 發票id,購 銷識別號,金額,稅額 3 把上面兩個表都進行根據識別號把金額疊加...