jeecgboot 登入使用者唯一實現方式

2021-10-12 06:51:40 字數 1122 閱讀 2822

功能需求:實現同乙個賬號只能登入一次,如果同乙個賬號在另乙個地方登入,則把前面登入的使用者頂掉

目前形式:現在專案乙個使用者可以同時登入多次,意思就是可以重複登入。

實現邏輯:因為專案使用token來確認使用者登入的許可權,所以這裡首先要確保同乙個賬號登入有乙個唯一token。如果已經有乙個使用者登入,則會產生乙個token,這裡token會儲存到redis,儲存的key使用使用者的唯一值或者能區分使用者的方式,這裡使用使用者的id+字首的形式作為key,這裡就保證了,同乙個賬號登入,則token都會儲存到redis。且都能通過這個唯一key拿到使用者key。到這裡就算完成了第一步,可以隨時拿到token。下面就是驗證環節,使用者登入期間,就可以拿之前生成的token做驗證,如果已經有人登入過,則拿這個使用者唯一key,則能拿到值,如果能拿到值,那麼我們就要把前面登入使用者的token資訊等都刪掉。這個可以仿照退出登入書寫。如果不能拿到值,則直接走正常的登入邏輯就好

檢驗登入使用者唯一的token

//下面這兩句放在這個方法裡:userinfo(

)redisutil.set(commonconstant.prefix_only_user_token + sysuser.getid(

),token)

;redisutil.expire(commonconstant.prefix_only_user_token + sysuser.getid(

), jwtutil.expire_time*2 / 1000)

;

登入唯一驗證方法

/**

* 登入唯一驗證

* @param sysuser

* @return

*/public result onlyuser(sysuser sysuser)

string username = jwtutil.getusername(token);if

(sysuser != null)

else

}return result;

}

登入方法呼叫onlyuser()方法

onlyuser(sysuser)

;

檢視登入使用者

一 超級使用者及普通使用者redhat 7.x版本 超級使用者 root uid 0 普通使用者 uid 1000 65535 系統使用者 偽使用者 uid 1 999 redhat7.x版本之前的版本 例如6.4 6.0 5.0 4.0 3.0等 超級使用者 root uid 0 普通使用者 ui...

mysql新增登入使用者 設定遠端登入使用者

mysql u使用者名稱 p密碼 在mysql所在的伺服器上登入mysqluse mysql 進入mysql資料庫grant all privileges on to test identified by 123456 with grant option 指所有ip都可用此使用者登入,這個值是ip的...

wp 當前使用者 登入使用者

當前使用者 get currentuserinfo echo 使用者名稱 current user user login n echo 名字 current user user firstname n echo 姓氏 current user user lastname n echo 公開顯示名 c...