Spring Boot 併發登入人數控制

2021-09-24 21:20:52 字數 1385 閱讀 2927

通常系統都會限制同乙個賬號的登入人數,多人登入要麼限制後者登入,要麼踢出前者,spring security 提供了這樣的功能,本文講解一下在沒有使用security的時候如何手動實現這個功能

jwt(token)儲存在redis中,類似 jsessionid-session的關係,使用者登入後每次請求在header中攜帶jwt

如果你是使用session的話,也完全可以借鑑本文的思路,只是**上需要加些改動

維護乙個 username: jwttoken 這樣的乙個 key-value 在reids中, filter邏輯如下:

第一種方法邏輯簡單粗暴, 只維護乙個key-value 不需要使用鎖,非要說缺點的話沒有第二種方法靈活。

第二種方法我很喜歡,**很優雅靈活,但是邏輯相對麻煩一些,而且為了保證執行緒安全地操作佇列,要使用分布式鎖。目前我們專案中使用的是第一種方法

執行專案,訪問localhost:8887 demo中沒有儲存使用者資訊,隨意輸入使用者名稱密碼,使用者名稱相同則被踢出

訪問 localhost:8887/index.html 彈出使用者資訊, 代表當前使用者有效

另乙個瀏覽器登入相同使用者名稱,回到第乙個瀏覽器重新整理頁面,提示被踢出

SpringBoot 實現併發登入人數控制

通常系統都會限制同乙個賬號的登入人數,多人登入要麼限制後者登入,要麼踢出前者,spring security 提供了這樣的功能,本文講解一下在沒有使用security的時候如何手動實現這個功能 本文借鑑了 如果你是使用 shiro session 的模式,可以閱讀此文 demo 技術選型 jwt t...

spring boot 登入介面

1.彈出框太醜 引入layer 放到之後可以用如下 檢查是否載入成功 layer.ready function 載入成功結果為 2.介面的設計 bootstrap 3.登入後台 org.mybatis.spring.boot mybatis spring boot starter 1.3.2 它的位...

springboot 寫個token登入驗證

話不多說直接上 1.configuration 一下webmvcconfigurer 來弄乙個 configuration public class webconfig implements webmvcconfigurer 2.建立 public class reqinterceptor exte...