sa-token是什么?
sa-token是一個JavaWeb輕量級權限認證框架,主要解決項目中登錄認證、權限認證、Session會話等一系列由此衍生的權限相關業務。相比於其他安全性框架較容易上手。
- github: github.com/click33/sa-…
- 官網文檔: sa-token.dev33.cn/
代碼示例
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…
寫在最后
源碼開源,作者不易,如果你喜歡這個框架麻煩你隨手點一顆小星星哦!