SpringBoot整合sa-token,完成網站權限驗證


sa-token是什么?

sa-token是一個JavaWeb輕量級權限認證框架,其API調用非常簡單,有多簡單呢?以登錄驗證為例,你只需要:

// 在登錄時寫入當前會話的賬號id 
StpUtil.setLoginId(10001);    

// 然后在任意需要校驗登錄處調用以下API  
// --- 如果當前會話未登錄,這句代碼會拋出 `NotLoginException`異常
StpUtil.checkLogin();    

 

沒有復雜的封裝!不要任何的配置!只需這兩行簡單的調用,即可輕松完成系統登錄鑒權!

與其它權限認證框架相比,sa-token盡力保證兩點:

  • 上手簡單:能自動化的配置全部自動化,不讓你費腦子
  • 功能強大:能涵蓋的功能全部涵蓋,不讓你用個框架還要自己給框架打各種補丁

如果上面的示例能夠證明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令牌值

 

涵蓋功能

  • 登錄驗證 —— 輕松登錄鑒權,並提供五種細分場景值
  • 權限驗證 —— 攔截違規調用,不同角色不同授權
  • Session會話 —— 專業的數據緩存中心
  • 踢人下線 —— 將違規用戶立刻清退下線
  • 模擬他人賬號 —— 實時操作任意用戶狀態數據
  • 持久層擴展 —— 可集成redis、MongoDB等專業緩存中間件
  • 多賬號認證體系 —— 比如一個商城項目的user表和admin表分開鑒權
  • 無Cookie模式 —— APP、小程序等前后台分離場景
  • 注解式鑒權 —— 優雅的將鑒權與業務代碼分離
  • 花式token生成 —— 內置六種token風格,還可自定義token生成策略
  • 自動續簽 —— 提供兩種token過期策略,靈活搭配使用,還可自動續簽
  • 組件自動注入 —— 零配置與Spring等框架集成
  • 更多功能正在集成中... —— 如有您有好想法或者建議,歡迎加群交流
  • ...

SpringBoot集成示例

1、創建項目

在IDE中新建一個Springboot項目,例如:sa-token-demo-springboot(不會的同學請自行百度或者參考github示例)

2、設置jar包依賴

在 pom.xml 中添加依賴:

<!-- sa-token 權限認證, 在線文檔:http://sa-token.dev33.cn/ -->
<dependency>
    <groupId>cn.dev33</groupId>
    <artifactId>sa-token-spring-boot-starter</artifactId>
    <version>1.8.0</version>
</dependency>

  

3、配置文件

  • 你可以零配置啟動項目
  • 但同時你也可以在application.yml中增加如下配置,定制性使用框架:
spring: 
    # sa-token配置
    sa-token: 
        # token名稱 (同時也是cookie名稱)
        token-name: satoken
        # token有效期,單位s 默認30天, -1代表永不過期 
        timeout: 2592000
        # token臨時有效期 (指定時間內無操作就視為token過期) 單位: 秒
        activity-timeout: -1
        # 是否允許同一賬號並發登錄 (為true時允許一起登錄, 為false時新登錄擠掉舊登錄) 
        allow-concurrent-login: false
        # 在多人登錄同一賬號時,是否共用一個token (為true時所有登錄共用一個token, 為false時每次登錄新建一個token) 
        is-share: false
        # token風格
        token-style: uuid

 

4、創建主類

在項目中新建包 com.pj ,在此包內新建主類 SaTokenDemoApplication.java,輸入以下代碼:

@SpringBootApplication public class SaTokenDemoApplication { public static void main(String[] args) throws JsonProcessingException { SpringApplication.run(SaTokenDemoApplication.class, args); // run-->  System.out.println("啟動成功:sa-token配置如下:" + SaTokenManager.getConfig()); } }

5、運行

運行代碼,當你從控制台看到類似下面的內容時,就代表框架已經成功集成了

 

 

倉庫地址

 


免責聲明!

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



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