springboot集成輕量級權限認證框架sa-token


sa-token是什么?

sa-token是一個JavaWeb輕量級權限認證框架,主要解決項目中登錄認證、權限認證、Session會話等一系列由此衍生的權限相關業務。相比於其他安全性框架較容易上手。

代碼示例

1 sa-token的API調用非常簡單,有多簡單呢?以登錄驗證為例,你只需要:
2 // 在登錄時寫入當前會話的賬號id 
3 StpUtil.setLoginId(10001);    
4 // 然后在任意需要校驗登錄處調用以下API  --- 如果當前會話未登錄,這句代碼會拋出 `NotLoginException`異常
5 StpUtil.checkLogin();   

如果上面的示例能夠證明sa-token的簡單,那么以下API則可以證明sa-token的強大

 1 StpUtil.setLoginId(10001);          // 標記當前會話登錄的賬號id
 2 StpUtil.getLoginId();               // 獲取當前會話登錄的賬號id
 3 StpUtil.isLogin();                  // 獲取當前會話是否已經登錄, 返回true或false
 4 StpUtil.logout();                   // 當前會話注銷登錄
 5 StpUtil.logoutByLoginId(10001);     // 讓賬號為10001的會話注銷登錄(踢人下線)
 6 StpUtil.hasRole("super-admin");     // 查詢當前賬號是否含有指定角色標識, 返回true或false
 7 StpUtil.hasPermission("user:add");  // 查詢當前賬號是否含有指定權限, 返回true或false
 8 StpUtil.getSession();               // 獲取當前賬號id的Session 
 9 StpUtil.getSessionByLoginId(10001); // 獲取賬號id為10001的Session
10 StpUtil.getTokenValueByLoginId(10001);  // 獲取賬號id為10001的token令牌值
11 StpUtil.setLoginId(10001, "PC");        // 指定設備標識登錄
12 StpUtil.logoutByLoginId(10001, "PC");   // 指定設備標識進行強制注銷 (不同端不受影響)
13 StpUtil.switchTo(10044);                // 將當前會話身份臨時切換為其它賬號 

框架涵蓋功能

與SpringBoot集成具體API

sa-token.dev33.cn/doc/index.h…

登錄驗證具體API

sa-token.dev33.cn/doc/index.h…

示例:

 1   StpUtil.setLoginId(Object loginId)
 2   標記當前會話登錄的賬號id
 3   建議的參數類型:long | int | String, 不可以傳入復雜類型,如:User、Admin等等
 4 
 5   StpUtil.logout()
 6   當前會話注銷登錄
 7 
 8   StpUtil.isLogin()
 9   獲取當前會話是否已經登錄,返回true=已登錄,false=未登錄
10 
11   StpUtil.checkLogin()
12   檢驗當前會話是否已經登錄, 如果未登錄,則拋出異常:NotLoginException
13   擴展:NotLoginException 對象可通過 getLoginKey() 方法獲取具體是哪個 StpLogic 拋出的異常
14   擴展:NotLoginException 對象可通過 getType() 方法獲取具體的場景值,詳細參考章節:未登錄場景值
15 
16   StpUtil.getLoginId()
17   獲取當前會話登錄id, 如果未登錄,則拋出異常:NotLoginException
18   類似API還有:
19   StpUtil.getLoginIdAsString() 獲取當前會話登錄id, 並轉化為String類型
20   StpUtil.getLoginIdAsInt() 獲取當前會話登錄id, 並轉化為int類型
21   StpUtil.getLoginIdAsLong() 獲取當前會話登錄id, 並轉化為long類型
22 
23   StpUtil.getLoginId(T defaultValue)
24   獲取當前會話登錄id, 如果未登錄,則返回默認值 (defaultValue可以為任意類型)
25   類似API還有:
26   StpUtil.getLoginIdDefaultNull() 獲取當前會話登錄id, 如果未登錄,則返回null
27 
28   StpUtil.getLoginIdByToken(String tokenValue)
29   獲取指定token對應的登錄id,如果未登錄,則返回 null
30 
31   StpUtil.getTokenName()
32   獲取當前StpLogic的token名稱

 

權限驗證查看具體API

sa-token.dev33.cn/doc/index.h…

寫在最后

源碼開源,作者不易,如果你喜歡這個框架麻煩你隨手點一顆小星星哦!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM