抽离包装类,核心包脱离ServletAPI

This commit is contained in:
shengzhang
2021-04-05 22:54:25 +08:00
parent 9b44e05c28
commit 15eefbed33
30 changed files with 522 additions and 405 deletions
+16 -12
View File
@@ -27,20 +27,24 @@ implementation 'cn.dev33:sa-token-spring-boot-starter:1.15.2'
- gitee地址:[https://gitee.com/dromara/sa-token](https://gitee.com/dromara/sa-token)
- 开源不易,求鼓励,给个`star`吧
- 源码目录介绍:
```
── sa-token
├── sa-token-core // sa-token核心模块
├── sa-token-spring-boot-starter // sa-token整合springboot快速集成
├── sa-token-dao-redis // sa-token整合redis (使用jdk默认序列化方式)
├── sa-token-dao-redis-jackson // sa-token整合redis (使用jackson序列化方式)
├── sa-token-spring-aop // sa-token整合SpringAOP 注解鉴权
├── sa-token-oauth2 // sa-token实现 OAuth2.0 模块(内测暂未发布)
├── sa-token-demo-springboot // sa-token示例
├── sa-token-demo-jwt // sa-token集成jwt示例
├── sa-token-demo-oauth2 // sa-token集成OAuth2.0模块示例
├── sa-token-demo-oauth2-client // OAuth2.0 客户端
├── sa-token-demo-oauth2-server // OAuth2.0 服务端
├── sa-token-doc // sa-token开发文档
├── sa-token-core // sa-token 核心模块
├── sa-token-servlet // sa-token 整合 Servlet容器实现类包
├── sa-token-spring-boot-starter // sa-token 整合 SpringBoot 快速集成
├── sa-token-webflux-spring-boot-starter // sa-token 整合 WebFlux 快速集成
├── sa-token-dao-redis // sa-token 整合 Redis (使用jdk默认序列化方式)
├── sa-token-dao-redis-jackson // sa-token 整合 Redis (使用jackson序列化方式)
├── sa-token-spring-aop // sa-token 整合 SpringAOP 注解鉴权
├── sa-token-oauth2 // sa-token 实现 OAuth2.0 模块(内测暂未发布)
├── sa-token-demo-springboot // [示例] sa-token 整合 SpringBoot
├── sa-token-demo-jwt // [示例] sa-token 集成 jwt [示例]
├── sa-token-demo-webflux // [示例] sa-token 整合 WebFlux [示例]
├── sa-token-demo-oauth2 // [示例] sa-token集成OAuth2.0模块 [示例]
├── sa-token-demo-oauth2-client // [示例] OAuth2.0 客户端
├── sa-token-demo-oauth2-server // [示例] OAuth2.0 服务端
├── sa-token-doc // [文档] sa-token开发文档
├──pom.xml
```
+35 -8
View File
@@ -6,20 +6,47 @@
---
## 具体API
#### StpUtil.logoutByLoginId(Object loginId)
让指定loginId的会话注销登录(踢人下线),例如:
### 根据账号id踢人
让指定账号id的会话注销登录,例如:
``` java
// 使账号id为10001的会话注销登录,待到10001再次访问系统时会抛出`NotLoginException`异常,场景值为-5
// 使账号id为10001的会话注销登录(踢人下线),待到10001再次访问系统时会抛出`NotLoginException`异常,场景值为-5
StpUtil.logoutByLoginId(10001);
```
#### StpUtil.logoutByTokenValue(String tokenValue);
你还可以让指定token的会话注销登录 (此方法直接删除了`token->uid`的映射关系,对方再次访问时提示:`token无效`,场景值为-2)
### 根据Token令牌踢人
你还可以让指定token的会话注销登录
``` java
// 使账号id为10001的会话注销登录
StpUtil.logoutByTokenValue("xxxx-xxxx-xxxx-xxxx-xxxx");
```
此方法直接删除了`token->uid`的映射关系,对方再次访问时提示:`token无效`,场景值为-2
### 账号封禁
对于违规账号,有时候我们仅仅将其踢下线还是远远不够的,我们还需要对其进行**账号封禁**防止其再次登录
``` java
// 封禁指定账号
// 参数一:账号id
// 参数二:封禁时长,单位:秒 (86400秒=1天,此值为-1时,代表永久封禁)
StpUtil.disableLoginId(10001, 86400);
// 获取指定账号是否已被封禁 (true=已被封禁, false=未被封禁)
StpUtil.isDisable(10001);
// 获取指定账号剩余封禁时间,单位:秒
StpUtil.getDisableTime(10001);
```
#### 注意点
对于正在登录的账号,对其账号封禁时并不会使其立刻注销<br>
如果需要将其封禁后立即掉线,可采取先踢再封禁的策略,例如:
``` java
// 先踢下线
StpUtil.logoutByLoginId(10001);
// 再封禁账号
StpUtil.disableLoginId(10001, 86400);
```
+8 -4
View File
@@ -81,13 +81,17 @@
<p>拦截违规调用,适配RBAC权限模型,不同角色不同授权,权限分配精细到按钮级</p>
</div>
<div class="feature">
<h2>Session会话</h2>
<h2>分布式Session会话</h2>
<p>专业的数据缓存中心,内置三种会话模型:User-Session、Token-Session、自定义Session</p>
</div>
<div class="feature">
<h2>踢人下线</h2>
<p>一行代码实现踢人下线功能,清退违规用户,对方再次访问系统提示“已被踢下线”</p>
</div>
<div class="feature">
<h2>账号封禁</h2>
<p>封禁指定账号,并设定解封时间,期间此账号无法登录系统</p>
</div>
<div class="feature">
<h2>Redis集成</h2>
<p>可扩展持久层,集成Redis、Memcached等专业缓存中间件,重启数据不丢失</p>
@@ -139,16 +143,16 @@
</div>
<div class="feature">
<h2>记住我模式</h2>
<p>一个参数即可轻松适配 [记住我] 模式,做到重启浏览器免验证</p>
<p>轻松适配 [记住我] 模式,重启浏览器免验证,还可指定免验证具体时长</p>
</div>
<div class="feature">
<h2>密码加密</h2>
<p>提供密码加密模块,可快速MD5、SHA1、SHA256、AES、RSA加密</p>
</div>
<!-- <div class="feature">
<div class="feature">
<h2>组件自动注入</h2>
<p>零配置与Spring等框架集成</p>
</div> -->
</div>
</div>
<div class="re-text">有了sa-token,你所有的权限认证问题,都不再是问题!</div>
</div>