如何保證用戶唯一登錄(即一用戶名無法多人使用)

系統在設計時需要保證用戶唯一登錄,如現在的QQ等只能在一端登入。就是用戶用A這個賬號登錄之後,其他人都不能再使用登錄了。如果另一個用戶登錄的話,就會把當前這個用戶踢下線來。

設計流程

數據庫SQL

CREATE TABLE `user_token` (
`id` INT ( 11 ) NOT NULL AUTO_INCREMENT COMMENT '主鍵',
`token` VARCHAR ( 255 ) DEFAULT NULL COMMENT '令牌',
`login_type` VARCHAR ( 255 ) CHARACTER 
SET utf8 DEFAULT NULL COMMENT '登錄類型{pc、androad、ios}',
`device_info` VARCHAR ( 255 ) DEFAULT NULL COMMENT '設備信息',
`is_availability` INT ( 2 ) DEFAULT NULL COMMENT '是否在線(0在線,1下線)',
`user_id` INT ( 11 ) DEFAULT NULL COMMENT '用戶id',
PRIMARY KEY ( `id` ) 
) ENGINE = INNODB AUTO_INCREMENT = 2 DEFAULT CHARSET = utf8mb4;

 

核心代碼

        // 用戶每一個端登錄成功之後,會對應生成一個token令牌(臨時且唯一)存放在redis中作爲rediskey
		TransactionStatu
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章