初識sa-token及登錄授權(quán)簡單實(shí)現(xiàn)
前言
在java的世界里,有很多優(yōu)秀的權(quán)限認(rèn)證框架,如Apache Shiro、Spring Security 等等。這些框架背景強(qiáng)大,歷史悠久,其生態(tài)也比較齊全。
但同時(shí)這些框架也并非十分完美,在前后臺分離已成標(biāo)配的互聯(lián)網(wǎng)時(shí)代,這些老牌框架的很多設(shè)計(jì)理已經(jīng)相當(dāng)滯后,無法與我們的項(xiàng)目完美契合。
而今天我要介紹的這款框架,專門為前后臺分離架構(gòu)而生, 功能強(qiáng)大, 上手簡單 —— sa-token。
sa-token 是什么?
sa-token是一個(gè)輕量級Java權(quán)限認(rèn)證框架,主要解決: 登錄認(rèn)證、權(quán)限認(rèn)證、Session會話 等一系列權(quán)限相關(guān)問題
sa-token的API調(diào)用非常簡單,一行代碼即可搞定登錄授權(quán),廢話不多說,我們直接上示例:
1. 添加pom依賴
<!-- sa-token 權(quán)限認(rèn)證, 在線文檔:http://sa-token.dev33.cn/ -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.12.0</version>
</dependency>2. 調(diào)用框架API進(jìn)行登錄
// 在用戶賬號密碼驗(yàn)證成功后,直接調(diào)用以下API進(jìn)行登錄授權(quán) StpUtil.setLoginId(10001);
至此,我們已經(jīng)借助sa-token框架完成登錄授權(quán)!
此時(shí)的你的小腦袋可能飄滿了問號,就這么簡單?自定義Realm呢?全局過濾器呢?我不用寫各種配置文件嗎?
事實(shí)上在此我可以負(fù)責(zé)的告訴你,在sa-token中,登錄授權(quán)就是如此的簡單,不需要什么全局過濾器,不需要各種亂七八糟的配置!只需要這一行簡單的API調(diào)用,即可完成會話的登錄授權(quán)!
當(dāng)你受夠Shiro、Security等框架的三拜九叩之后,你就會明白,相對于這些傳統(tǒng)老牌框架,sa-token的API設(shè)計(jì)是多么的清爽!
拒絕引入復(fù)雜的概念,以實(shí)際業(yè)務(wù)需求為第一目標(biāo)進(jìn)行定向突破,業(yè)務(wù)上需要什么,sa-token就做什么,不搞各種云里霧里的高大上概念,以化繁為簡為第一目標(biāo)!
除了以上的登錄授權(quán),sa-token還可以一行代碼完成以下功能:
StpUtil.setLoginId(10001); // 標(biāo)記當(dāng)前會話登錄的賬號id
StpUtil.getLoginId(); // 獲取當(dāng)前會話登錄的賬號id
StpUtil.isLogin(); // 獲取當(dāng)前會話是否已經(jīng)登錄, 返回true或false
StpUtil.logout(); // 當(dāng)前會話注銷登錄
StpUtil.logoutByLoginId(10001); // 讓賬號為10001的會話注銷登錄(踢人下線)
StpUtil.hasRole("super-admin"); // 查詢當(dāng)前賬號是否含有指定角色標(biāo)識, 返回true或false
StpUtil.hasPermission("user:add"); // 查詢當(dāng)前賬號是否含有指定權(quán)限, 返回true或false
StpUtil.getSession(); // 獲取當(dāng)前賬號id的Session
StpUtil.getSessionByLoginId(10001); // 獲取賬號id為10001的Session
StpUtil.getTokenValueByLoginId(10001); // 獲取賬號id為10001的token令牌值
StpUtil.setLoginId(10001, "PC"); // 指定設(shè)備標(biāo)識登錄
StpUtil.logoutByLoginId(10001, "PC"); // 指定設(shè)備標(biāo)識進(jìn)行強(qiáng)制注銷 (不同端不受影響)
StpUtil.switchTo(10044); // 將當(dāng)前會話身份臨時(shí)切換為其它賬號sa-token的API眾多,請恕此處無法逐一為您展示,以上示例只是框架能力的很小一部分能力展示。
在sa-token中,各種與登錄鑒權(quán)相關(guān)功能:踢人下線、自動續(xù)簽、同端互斥登錄等常見業(yè)務(wù)均可以一行代碼調(diào)用實(shí)現(xiàn)
關(guān)于sa-token的授權(quán)登錄先介紹至此,接下來的章節(jié)我會陸續(xù)介紹sa-token框架的其它各種強(qiáng)大能力
如果覺得文章寫得不錯還請大家不要吝惜為文章點(diǎn)個(gè)贊,您的支持是我更新的最大動力!
最后附上項(xiàng)目鏈接:
- 官網(wǎng)文檔:http://sa-token.dev33.cn/
- Gitee開源地址: https://gitee.com/sz6/sa-token
- GitHub開源地址: https://github.com/click33/sa-token
以上就是初識sa-token及登錄授權(quán)簡單實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于sa-token登錄授權(quán)的資料請關(guān)注腳本之家其它相關(guān)文章!
- 一文學(xué)會使用sa-token解決網(wǎng)站權(quán)限驗(yàn)證
- Sa-Token中的SaSession對象使用學(xué)習(xí)示例詳解
- Sa-Token記住我模式實(shí)現(xiàn)七天免登錄
- Sa-Token不同模式實(shí)現(xiàn)單地登錄?多地登錄?同端互斥登錄
- springboot 整合 sa-token簡介及入門教程
- SpringBoot?使用?Sa-Token?完成注解鑒權(quán)功能(權(quán)限校驗(yàn))
- Java輕量級權(quán)限認(rèn)證框架Sa-Token的使用
- sa-token?路由攔截式鑒權(quán)使用示例詳解
相關(guān)文章
Spring使用@Autowired注解實(shí)現(xiàn)自動裝配方式
這篇文章主要介紹了Spring使用@Autowired注解實(shí)現(xiàn)自動裝配方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
spring boot 常見http請求url參數(shù)獲取方法
這篇文章主要介紹了spring boot 常見http請求url參數(shù)獲取,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
Spring Cloud Gateway打造可擴(kuò)展的微服務(wù)網(wǎng)關(guān)
微服務(wù)網(wǎng)關(guān)是一個(gè)位于客戶端和后端微服務(wù)之間的服務(wù)器,用于處理所有與客戶端的通信,Spring Cloud Gateway都是一個(gè)值得考慮的選擇,它將幫助您更好地管理和保護(hù)您的微服務(wù),感興趣的朋友一起看看吧2023-11-11
Java實(shí)現(xiàn)Dijkstra算法的示例代碼
Dijkstra(迪杰斯特拉)算法是典型的單源最短路徑算法,用于計(jì)算一個(gè)節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的最短路徑。本文主要介紹了實(shí)現(xiàn)這一算法的Java代碼,需要的可以參考一下2022-07-07
Java多線程中的ThreadPoolExecutor使用解析
這篇文章主要介紹了Java多線程中的ThreadPoolExecutor使用解析,作為線程池的緩沖,當(dāng)新增線程超過maximumPoolSize時(shí),會將新增線程暫時(shí)存放到該隊(duì)列中,需要的朋友可以參考下2023-12-12

