初識sa-token及登錄授權(quán)簡單實(shí)現(xiàn)
前言
在java的世界里,有很多優(yōu)秀的權(quán)限認(rèn)證框架,如Apache Shiro、Spring Security 等等。這些框架背景強(qiáng)大,歷史悠久,其生態(tài)也比較齊全。
但同時這些框架也并非十分完美,在前后臺分離已成標(biāo)配的互聯(lián)網(wǎng)時代,這些老牌框架的很多設(shè)計理已經(jīng)相當(dāng)滯后,無法與我們的項目完美契合。
而今天我要介紹的這款框架,專門為前后臺分離架構(gòu)而生, 功能強(qiáng)大, 上手簡單 —— sa-token。
sa-token 是什么?
sa-token是一個輕量級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)!
此時的你的小腦袋可能飄滿了問號,就這么簡單?自定義Realm呢?全局過濾器呢?我不用寫各種配置文件嗎?
事實(shí)上在此我可以負(fù)責(zé)的告訴你,在sa-token中,登錄授權(quán)就是如此的簡單,不需要什么全局過濾器,不需要各種亂七八糟的配置!只需要這一行簡單的API調(diào)用,即可完成會話的登錄授權(quán)!
當(dāng)你受夠Shiro、Security等框架的三拜九叩之后,你就會明白,相對于這些傳統(tǒng)老牌框架,sa-token的API設(shè)計是多么的清爽!
拒絕引入復(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)前會話身份臨時切換為其它賬號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)個贊,您的支持是我更新的最大動力!
最后附上項目鏈接:
- 官網(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)文章
java實(shí)現(xiàn)簡單圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡單圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
Spring集成MyBatis和PageHelper分頁插件整合過程詳解
Spring?整合?MyBatis?是將?MyBatis?數(shù)據(jù)訪問框架與?Spring?框架進(jìn)行集成,以實(shí)現(xiàn)更便捷的開發(fā)和管理,在集成過程中,Spring?提供了許多特性和功能,如依賴注入、聲明式事務(wù)管理、AOP?等,這篇文章主要介紹了Spring集成MyBatis和PageHelper分頁插件整合,需要的朋友可以參考下2023-08-08
java并發(fā)編程專題(四)----淺談(JUC)Lock鎖
這篇文章主要介紹了java并發(fā)編程(JUC)Lock鎖的相關(guān)內(nèi)容,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06
JPA?通過Specification如何實(shí)現(xiàn)復(fù)雜查詢
這篇文章主要介紹了JPA?通過Specification如何實(shí)現(xiàn)復(fù)雜查詢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
spring mvc 和ajax異步交互完整實(shí)例代碼
本篇文章主要介紹了spring mvc 和ajax異步交互完整實(shí)例代碼,簡單的AJAX+SpringMVC的異步交互小例子,有興趣的可以了解一下。2017-02-02
Java中IdentityHashMap與HashMap區(qū)別詳解
這篇文章主要介紹了Java中IdentityHashMap與HashMap區(qū)別詳解,很多人不曉得IdentityHashMap的存在,其中不乏工作很多年的Java開發(fā)者,他們看到就說是第三方j(luò)ar包,實(shí)際上它是Jdk源碼自帶的集合類,需要的朋友可以參考下2023-11-11
SpringBoot發(fā)送郵件功能 驗(yàn)證碼5分鐘過期
這篇文章主要為大家詳細(xì)介紹了SpringBoot發(fā)送郵件功能,驗(yàn)證碼5分鐘過期,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03
關(guān)于SpringBoot整合redis使用Lettuce客戶端超時問題
使用到Lettuce連接redis,一段時間后不操作,再去操作redis,會報連接超時錯誤,在其重連后又可使用,糾結(jié)是什么原因?qū)е碌哪兀旅嫘【幗o大家?guī)砹薙pringBoot整合redis使用Lettuce客戶端超時問題及解決方案,一起看看吧2021-08-08

