Sa-Token:轻量级Java权限认证框架,登录鉴权超简单

Sa-Token 是一款开源免费的轻量级 Java 权限认证框架,提供登录认证、权限认证、单点登录、OAuth2.0、微服务鉴权等功能,助力开发更高效。
直达下载
回到上一页
clickgpt_line.png_noView
介绍

你在做Java后端开发的时候,是不是也经常被各种登录、权限管理搞得头大?特别是用 Shiro、SpringSecurity 那种,配置又复杂,接入又麻烦,心态一度炸裂。而最近我体验了一下 Sa-Token,真的有种“怎么早没遇到它”的感觉啊!

java_package_satoken_1

Sa-Token 是一个开源、免费的轻量级 Java 权限认证框架,它主打的就是一个:简单!优雅!高效!一行代码就能登录,一行代码就能鉴权,简直不要太爽。

要在 SpringBoot 项目里用它,只需要在 pom.xml 里加上这段依赖就行了:

    
xml
<dependency>
    <groupId>cn.dev33</groupId>
    <artifactId>sa-token-spring-boot-starter</artifactId>
    <version>1.42.0</version>
</dependency>

不止是 SpringBoot2,SpringBoot3、Solon、JFinal 等主流 Web 框架,Sa-Token 都有现成的适配包,妥妥的开箱即用,连配置文件都懒得建,直接一行代码搞定登录。

比如登录认证,只需要:

    
java
StpUtil.login(10001);

是不是有点不可思议?没错,就一行,连接口实现都不用写。要校验登录状态也一样轻松:

    
java
StpUtil.checkLogin();

如果你想踢掉某个账号下线,只要:

    
java
StpUtil.kickout(10077);

甚至权限控制也超级丝滑,可以用注解的方式:

    
java
@SaCheckPermission("user:add")
public String insert(SysUser user) {
    return "用户增加";
}

要做路由级别的权限拦截?那就注册一个拦截器就好啦,比如:

    
java
registry.addInterceptor(new SaInterceptor(handler -> {
    SaRouter.match("/user/**", r -> StpUtil.checkPermission("user"));
    SaRouter.match("/admin/**", r -> StpUtil.checkPermission("admin"));
    // ...
})).addPathPatterns("/**");

我自己用下来感觉,跟传统那种一大堆 xml 配置的框架比,简直像是从原始社会进入了信息时代,体验好到起飞。

Sa-Token的功能,不只是登录那么简单

别看 Sa-Token轻量,它的功能可是全得不能再全了。大概列一下你就懂了:

java_package_satoken_2

  • 登录认证支持单端、多端、互斥登录,七天免登录什么的都安排上了。
  • 权限认证不但有角色和权限,还能搞二级认证。
  • 踢人下线、临时切换身份、模拟别人账号,全都有。
  • Session 会话存取值贼方便,还能接 Redis 持久化。
  • 支持各种前后台分离,APP、小程序都能玩。
  • Token生成策略也能自定义,还内置了六种样式。
  • 账号封禁、密码加密、HTTP Basic认证、分布式会话、微服务网关鉴权、RPC调用鉴权等等全都有。
  • SSO 单点登录更是分了三种模式,解决各种不同场景问题。
  • OAuth2.0 授权模式也全覆盖,授权码、密码式、隐式、客户端凭证,爱怎么用怎么用。

而且这次 v1.42.0 新版本还加了不少炸裂的新功能,比如说:

新版v1.42.0都更新了啥?

首先是 API Key 支持。
如果你搞过 ChatGPT、DeepSeek 这种开放平台,肯定知道 API Key 是什么了。这次 Sa-Token 不止支持 API Key 签发、校验、禁用、删除,还能给每个 Key 单独设定不同的权限范围,真正做到了最小授权、隔离使用,安全性妥妥的。

然后是 临时Token反查功能
以前创建了 RefreshToken 后,想查某个账号签发过哪些 Token,没办法,现在可以了!只需要在创建 Token 的时候加个参数:

    
java
SaTempUtil.createToken("10001", 2592000, true);

然后就可以通过账号ID查出所有历史签发记录,管理 Token 简直不要太方便。

还有一个重磅更新,就是引入了 TOTP动态验证码算法
简单理解就是那种6位数的一次性验证码,像 Google Authenticator 那种。这种双因子认证方式现在也可以直接在 Sa-Token 里搞了,不需要再接第三方服务了,离线也能生成,体验贼棒!

还有就是上下文存储策略大升级了。
原来 Sa-Token 是靠 Web 框架的上下文,现在用 ThreadLocal 自己搞定上下文,不但兼容性更好了,异步场景下也能正常使用,调用起来更加顺滑。

新版本还自带了一个 CORS 跨域处理组件。
以前跨域得自己写过滤器,现在直接内置好好的,只需要配一下就行,开发体验又上了一个台阶。

还有个小升级也挺有意思,就是 sa-token-quick-login 插件支持了 Http Basic 认证。
之前要登录还得填表单,现在直接在地址栏里写账号密码就能认证,比如:

    
http://sa:123456@localhost:8081/

非常适合拿来配合 Postman、API接口测试工具做接口测试,调试速度快到飞起。

最后

说实话,第一次用 Sa-Token 的时候,我还有点怀疑,这么简单真的靠谱吗?
结果一用发现,真的就是那么简单,而且功能一点都不少,文档也超级详细,官方还有各种示例Demo,几乎你想到的问题,文档里都有现成答案。

开发效率提高是真的,心情也舒畅了不少。特别是切换到 Sa-Token 后,项目的权限认证模块变得清爽又好维护,再也不用为了一堆复杂的安全配置头大了。

而且最重要的是,它是开源免费的,社区活跃度也很高,有问题提issue很快就能得到回复,体验感爆棚。

最后嘛,如果你也在做Java开发,特别是想搞登录、鉴权这块,我真的强烈推荐试试看 Sa-Token,真的会让你爱上权限管理这一块工作啊!

RPA
八爪鱼RPA
支持一键抓取公众号/小红书/抖音/淘宝数据
立即查看
流程自动化
付费
AI爆文训练营
图文变现友好赛道,低门槛、高上限,教你从0到1做个赚钱的公众号!
立即查看
躺着赚钱
¥149/年
何老师陪你做副业
这里聚焦AI副业、个人IP、自媒体运营、写作、赚钱案例。不哔哔,只分享有价值的副业项目。
立即查看
AI赚钱案例
限免
DeepSeek进阶教程
带你全面掌握DeepSeek应用技巧。提升工作、学习效率
立即查看
100万人学过
付费
网盘拉新实战教程
每周花费一小时,手把手教你赚网盘平台佣金
立即查看
500人学过
限时优惠
AiPPT
结合最新AI技术,为用户提供一键生成高质量PPT的解决方案。
立即查看
一键生成 PPT
免费
豆包MarsCode
一款免费的AI编程助手,全新支持DeepSeek R1/V3、豆包大模型1.5自由切换,免部署、更准确、更强大!
立即查看
AI编程助手
免费
Monica AI
Monica AI满血复活DeepSeek【免费】,提升您的聊天、搜索、写作和编程体验。
立即查看
一站式 AI 助手
云服务
腾讯云
综合性的云计算服务平台,现已接入DeepSeek,提供多样化的云解决方案
立即查看
高效可靠
云服务
阿里云
全球领先的云计算与数据服务平台,提供云服务器、存储、数据库、安全等多种服务
立即查看
多样化
编程学习
免费领取编程学习资料