防止用戶同一客戶端同時(shí)登錄

需求

不同客戶端可以同時(shí)登錄 , 但同一客戶端 2個(gè)同樣帳號(hào)不允許登錄
就是說(shuō)同一個(gè) tid 同一帳號(hào)不允許同時(shí)登錄 , 不允許的意思就是第1人登錄后, 第2人再登錄, 第1人會(huì)被踢下來(lái),失效

實(shí)現(xiàn)

1 redis

因?yàn)閠oken的管理使用的是redis
在生成token 的同時(shí)再生成一個(gè)key key是: tid:userid 內(nèi)容: token
tid 為客戶端id 比如web端為1 安卓為2 pc 端為3 由各個(gè)客戶端傳給后臺(tái)
如果第二人登錄時(shí), 根據(jù)tid:userid 找到token ,刪除 此key 和token
再將第二人的登錄信息 插入到redis 中 .
這時(shí)第一人登錄的信息就會(huì)過(guò)期, 也就實(shí)現(xiàn)了踢下線
(為什么不做成第二人登錄時(shí)不放行, 因?yàn)橛锌赡苁堑?人和第2人都是用戶本人, 他可能會(huì)在第1個(gè)手機(jī)未退出登錄時(shí)更換另一個(gè)手機(jī)登錄,如果不放行,他必須等第1個(gè)token失效后才能使用 )
這個(gè)防過(guò)期的key 和token 的過(guò)期時(shí)間都是一樣

2 數(shù)據(jù)庫(kù)

同上面一樣, 在沒(méi)有redis 時(shí)使用數(shù)據(jù)庫(kù)存儲(chǔ)key

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容