简介
SaToken是一个轻量级的Java权限认证框架,目标是让鉴权变得简单、优雅。
其主要解决了登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权等一系列权限相关问题。
目前在Gitee上已经有了8.9K的star,足以可见大家对其的认可。
使用了SaToken以后,登录有多简单呢?
StpUtil.login(1001); //id为10001的用户登录
没错,一行代码就可以搞定登录了。
SaToken把很多功能都做了简化,尽量做到简单一行或者几行代码就可以帮大家完成日常的工作,并且将全局核心逻辑都封装到了SaStrategy类中,大家如果有定制化需求,只需重写其中的某个方法即可。
检查是否登录:
StpUtil.checkLogin();
踢人下线:
StpUtil.kickout(1001); //将id为1001的用户踢下线
权限认证:
// 注解鉴权: 检查当前用户是否具有add权限`user:add`
@SaCheckPermission("user:add")
public String insert(SysUser user) {
return "";
}
以下是Satoken支持的功能列表:
Springboot集成示例
1,添加依赖
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.33.0</version>
</dependency>
2,在application.yml增加配置
sa-token:
# token名称 (同时也是cookie名称)
token-name: satoken
# token有效期,单位s 默认30天, -1代表永不过期
timeout: 2592000
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
activity-timeout: -1
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
is-concurrent: true
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
is-share: true
# token风格
token-style: uuid
# 是否输出操作日志
is-log: false
3,添加SaInterceptor
@Configuration
public class SaTokenConfigure implements WebMvcConfigurer {
// 注册拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注册 Sa-Token 拦截器,校验规则为 StpUtil.checkLogin() 登录校验。
registry.addInterceptor(new SaInterceptor(handle -> StpUtil.checkLogin()))
.addPathPatterns("/**")
.excludePathPatterns("/user/doLogin");
}
}
经过以上3步,我们就可以使用SaToken进行相关的功能了。更多的功能细节大家可以去其官网查看,官方对每个功能细节都有详细的说明文档,上手十分容易。
官网地址:
https://sa-token.cc/doc.html#/
当然,以上只是SaToken的简单用法,现在我们很多项目都是前后台分离的,并且会有多台服务器构建集群,所以SaToken也提供了集成Redis等各种深入功能,大家根据其文档可以很轻松的集成到自己的项目中。
最后,借用其官网的一句话:当你受够 Shiro、SpringSecurity 等框架的三拜九叩之后,你就会明白,相对于这些传统老牌框架,Sa-Token 的 API 设计是多么的简单、优雅!
感谢您的点赞和关注。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84837.html