抽离包装类,核心包脱离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

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
```

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);
```