《SAAS平臺-用戶授權遇到問題-用戶“非正常退出”》
用戶“非正常退出”(如不點退出按鈕,直接關閉瀏覽器),系統無法感知用戶已經“退出”?
方案一:
利用websocket機制,斷線立即觸發“退出”動作
缺點:如果用戶網絡不穩定,經常掉線,系統會頻繁退出,對用戶很不友好
方案二:
判斷onlineUser中是否存在該用戶:
有:允許登陸
無:繼續驗證
當前登陸數是否到上限(大於等於用戶授權數)
否:允許登陸
是:拒絕登陸
問題:
用戶如果一直一非正常方式退出,則onlineUser一直存在該用戶,繞過了用戶授權數限制,漏洞?
解決:onlineUser 中用戶緩存失效時間爲”用戶登陸有效的最大時長“,時間到立即淘汰該用戶,也就是說最大可以通過漏洞多登錄一天(比起用戶體驗,優先採用)