關於即時強制下線的實現

2021-07-31 16:01:26 字數 849 閱讀 6064

即時強制下線這個功能一般是用在當使用者使用裝置a登入後,又用裝置b登入這個使用者的賬號,裝置a上的客戶端強制當前使用者下線。即不能在多台裝置上同時登入乙個賬號。

邏輯圖如下:

邏輯**釋:核心(使用者只要進行登入操作或者更改密碼操作都更改這個使用者的token)當使用者使用裝置進行登入時,登入成功後更改使用者的token,並將這個token返回給客戶端,客戶端將這個token儲存到本地,在這個使用者的以後的訪問的時候都帶上這個token,伺服器端將這個客戶端帶來的token與伺服器的token進行比較,如果一致返回正確資料資訊,不一致返回強制下線的資訊,客戶端根據返回的資訊進行不同的處理。

假設使用者在裝置a上進行了登入操作,更改了伺服器的token,那麼在沒有下一次登入操作的時候伺服器上都是這個token,使用者的後續請求都能正確響應,就算使用者登出了這個賬號,再次進行登入的時候又觸發了更改伺服器token和返回token的操作,也沒妨礙。

但當使用者在裝置a上進行登入後,一直處於登入狀態,再在裝置b上進行登入,觸發了伺服器token的改變,裝置a上再使用儲存的token進行訪問資料時就觸發了token不一致,裝置a將收到伺服器發出的強制下線資訊,退回到登入介面。

當使用者進行更改密碼操作的時候,導致了伺服器token的改變,使用者再用裝置上儲存的token進行訪問時也觸發了token不一致,收到伺服器發出的強制下線資訊,退回到登入介面。

這就是我對實現即時強制下線(其實並沒有實現真正意義上的即時,只是在使用者請求下一次資料時才觸發)的邏輯想法,不知道有沒有什麼疏漏,有不足之處請告知。

關於php關閉輸出快取,實現即時輸出

php輸出預設所有的輸出放到最後一起輸出,如果要實現即時輸出則需要關閉輸出快取,在apache下用到的方法是 ob end flush 關閉快取 ob implicit flush true 每次快取即時輸出相當於每次輸出後呼叫flush 需要注意的是每次輸出如果用ajax呼叫需要加乙個休眠時間,經...

linux下執行緒池的實現(c )

2012 12 07 16 11 44 分類 電子安防專案 舉報 字型大小訂閱 參考 autoptr.h created on 2012 12 7 author kym 智慧型指標模板 ifndef autoptr h define autoptr h include template class ...

關於label的強制換行

第一種方法是直接引用樣式 label3 runat server width 350px text bind y question cssclass label 第二種方法 檢視頁面原始碼發現,解析後的label標籤為 所以在頁面新增樣式 label3 runat server width 350p...