sa-token是什么?
sa-token是一個JavaWeb輕量級權限認證框架,主要解決專案中登錄認證、權限認證、Session會話等一系列由此衍生的權限相關業務,相比于其他安全性框架較容易上手,
- github:https://github.com/click33/sa-token
- 官網檔案:http://sa-token.dev33.cn/
代碼示例
sa-token的API呼叫非常簡單,有多簡單呢?以登錄驗證為例,你只需要:
// 在登錄時寫入當前會話的賬號id
StpUtil.setLoginId(10001);
// 然后在任意需要校驗登錄處呼叫以下API --- 如果當前會話未登錄,這句代碼會拋出 `NotLoginException`例外
StpUtil.checkLogin();
如果上面的示例能夠證明sa-token的簡單,那么以下API則可以證明sa-token的強大
StpUtil.setLoginId(10001); // 標記當前會話登錄的賬號id
StpUtil.getLoginId(); // 獲取當前會話登錄的賬號id
StpUtil.isLogin(); // 獲取當前會話是否已經登錄, 回傳true或false
StpUtil.logout(); // 當前會話注銷登錄
StpUtil.logoutByLoginId(10001); // 讓賬號為10001的會話注銷登錄(踢人下線)
StpUtil.hasRole("super-admin"); // 查詢當前賬號是否含有指定角色標識, 回傳true或false
StpUtil.hasPermission("user:add"); // 查詢當前賬號是否含有指定權限, 回傳true或false
StpUtil.getSession(); // 獲取當前賬號id的Session
StpUtil.getSessionByLoginId(10001); // 獲取賬號id為10001的Session
StpUtil.getTokenValueByLoginId(10001); // 獲取賬號id為10001的token令牌值
StpUtil.setLoginId(10001, "PC"); // 指定設備標識登錄
StpUtil.logoutByLoginId(10001, "PC"); // 指定設備標識進行強制注銷 (不同端不受影響)
StpUtil.switchTo(10044); // 將當前會話身份臨時切換為其它賬號
框架涵蓋功能
與SpringBoot集成點擊查看官方API檔案
http://sa-token.dev33.cn/doc/index.html#/start/download
登錄驗證具體API點擊查看具體API
http://sa-token.dev33.cn/doc/index.html#/use/login-auth
StpUtil.setLoginId(Object loginId)
標記當前會話登錄的賬號id
建議的引數型別:long | int | String, 不可以傳入復雜型別,如:User、Admin等等
StpUtil.logout()
當前會話注銷登錄
StpUtil.isLogin()
獲取當前會話是否已經登錄,回傳true=已登錄,false=未登錄
StpUtil.checkLogin()
檢驗當前會話是否已經登錄, 如果未登錄,則拋出例外:NotLoginException
擴展:NotLoginException 物件可通過 getLoginKey() 方法獲取具體是哪個 StpLogic 拋出的例外
擴展:NotLoginException 物件可通過 getType() 方法獲取具體的場景值,詳細參考章節:未登錄場景值
StpUtil.getLoginId()
獲取當前會話登錄id, 如果未登錄,則拋出例外:NotLoginException
類似API還有:
StpUtil.getLoginIdAsString() 獲取當前會話登錄id, 并轉化為String型別
StpUtil.getLoginIdAsInt() 獲取當前會話登錄id, 并轉化為int型別
StpUtil.getLoginIdAsLong() 獲取當前會話登錄id, 并轉化為long型別
StpUtil.getLoginId(T defaultValue)
獲取當前會話登錄id, 如果未登錄,則回傳默認值 (defaultValue可以為任意型別)
類似API還有:
StpUtil.getLoginIdDefaultNull() 獲取當前會話登錄id, 如果未登錄,則回傳null
StpUtil.getLoginIdByToken(String tokenValue)
獲取指定token對應的登錄id,如果未登錄,則回傳 null
StpUtil.getTokenName()
獲取當前StpLogic的token名稱
權限驗證參考點擊查看具體API
http://sa-token.dev33.cn/doc/index.html#/use/jur-auth
寫在最后
原始碼開源,作者不易,如果你喜歡這個框架麻煩你隨手點一顆小星星哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/248550.html
標籤:其他
上一篇:Kubernetes:55---訪問pod資源資料(Kubernetes API:借助secret從pod內部與API服務器進行互動(ca.crt、namespace、token))
下一篇:密碼學期末計算題復習
