mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-09-22 20:13:34 +08:00
⚡ v1.5版本 升级
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
<p align="center">
|
||||
<img alt="logo" src="http://127.0.0.1:8848/sa-token-doc/doc/logo.png" width="150" height="150" style="margin-bottom: 10px;">
|
||||
<img alt="logo" src="https://gitee.com/sz6/sa-token/raw/master/sa-token-doc/doc/logo.png" width="150" height="150" style="margin-bottom: 10px;">
|
||||
</p>
|
||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">sa-token v1.4.0</h1>
|
||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">sa-token v1.5.1</h1>
|
||||
<h4 align="center">一个JavaWeb轻量级权限认证框架,功能全面,上手简单</h4>
|
||||
<h4 align="center">
|
||||
<a href="https://gitee.com/sz6/sa-token/stargazers"><img src="https://gitee.com/sz6/sa-token/badge/star.svg"></a>
|
||||
<a href="https://github.com/click33/sa-token"><img src="https://img.shields.io/badge/sa--token-v1.4.0-2B9939"></a>
|
||||
<a href="https://github.com/click33/sa-token"><img src="https://img.shields.io/badge/sa--token-v1.5.1-2B9939"></a>
|
||||
<a href="https://github.com/click33/sa-token/stargazers"><img src="https://img.shields.io/github/stars/click33/sa-token"></a>
|
||||
<a href="https://github.com/click33/sa-token/watchers"><img src="https://img.shields.io/github/watchers/click33/sa-token"></a>
|
||||
<a href="https://github.com/click33/sa-token/network/members"><img src="https://img.shields.io/github/forks/click33/sa-token"></a>
|
||||
@@ -48,7 +48,7 @@ StpUtil.checkLogin();
|
||||
|
||||
|
||||
## 💦️️ 涵盖功能
|
||||
- ⚡ **登录验证** —— 轻松登录鉴权,提供个性化登录提示
|
||||
- ⚡ **登录验证** —— 轻松登录鉴权,并提供五种细分场景值
|
||||
- ⚡ **权限验证** —— 拦截违规调用,不同角色不同授权
|
||||
- ⚡ **自定义session会话** —— 专业的数据缓存中心
|
||||
- ⚡ **踢人下线** —— 将违规用户立刻清退下线
|
||||
|
@@ -21,12 +21,11 @@
|
||||
- [常见问题](/more/common-questions)
|
||||
- [友情链接](/more/link)
|
||||
- [更新日志](/more/update-log)
|
||||
<!-- - [常见问题](/c1) -->
|
||||
<!-- - [常用函数](/c1) -->
|
||||
<!-- - [插件](/c1) -->
|
||||
<!-- - [关于](/c1) -->
|
||||
<!-- - eclipse插件 -->
|
||||
<!-- - idea插件 -->
|
||||
|
||||
- **附录**
|
||||
- [未登录场景值](/fun/not-login-scene)
|
||||
|
||||
|
||||
|
||||
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
|
||||
<p style="text-align: center;">----- 到底线了 -----</p>
|
49
sa-token-doc/doc/fun/not-login-scene.md
Normal file
49
sa-token-doc/doc/fun/not-login-scene.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# NotLoginException 场景值
|
||||
|
||||
本篇介绍如何根据`NotLoginException`异常的场景值,来定制化处理未登录的逻辑 <br/>
|
||||
应用场景举例:未登录、被顶下线、被踢下线等场景需要不同方式来处理
|
||||
|
||||
|
||||
## 何为场景值
|
||||
- 在前面的章节中,我们了解到,在会话未登录的情况下尝试获取`loginId`会使框架抛出`NotLoginException`异常,而同为未登录异常却有五种抛出场景的区分 <br>
|
||||
- 那么,如何获取场景值呢?废话少说直接上代码:
|
||||
|
||||
|
||||
``` java
|
||||
// 全局异常拦截(拦截项目中的NotLoginException异常)
|
||||
@ExceptionHandler(NotLoginException.class)
|
||||
public AjaxJson handlerNotLoginException(NotLoginException nle, HttpServletRequest request, HttpServletResponse response)
|
||||
throws Exception {
|
||||
|
||||
// 打印堆栈,以供调试
|
||||
nle.printStackTrace();
|
||||
|
||||
// 判断场景值,定制化异常信息
|
||||
String message = "";
|
||||
if(nle.getType().equals(NotLoginException.NOT_TOKEN)) {
|
||||
message = "未提供token";
|
||||
}
|
||||
else if(nle.getType().equals(NotLoginException.INVALID_TOKEN)) {
|
||||
message = "token无效";
|
||||
}
|
||||
else if(nle.getType().equals(NotLoginException.TOKEN_TIMEOUT)) {
|
||||
message = "token已过期";
|
||||
}
|
||||
else if(nle.getType().equals(NotLoginException.BE_REPLACED)) {
|
||||
message = "token已被顶下线";
|
||||
}
|
||||
else if(nle.getType().equals(NotLoginException.KICK_OUT)) {
|
||||
message = "token已被踢下线";
|
||||
}
|
||||
else {
|
||||
message = "当前会话未登录";
|
||||
}
|
||||
|
||||
// 返回给前端
|
||||
return AjaxJson.getError(message);
|
||||
}
|
||||
```
|
||||
|
||||
<br/>
|
||||
注意:以上代码并非处理逻辑的最佳方式,只为以最简单的代码演示出场景值的获取与应用,大家可以根据自己的项目需求来定制化处理
|
||||
|
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<script>
|
||||
var name = '<img style="width: 50px; height: 50px; vertical-align: middle;" src="logo.png" alt="logo" /> ';
|
||||
name += '<b style="font-size: 24px; vertical-align: middle;">sa-token</b> <sub>v1.4.0</sub>'
|
||||
name += '<b style="font-size: 24px; vertical-align: middle;">sa-token</b> <sub>v1.5.1</sub>'
|
||||
window.$docsify = {
|
||||
name: name, // 名字
|
||||
repo: 'https://github.com/click33/sa-token', // github地址
|
||||
|
@@ -1,5 +1,18 @@
|
||||
# 更新日志
|
||||
|
||||
### 2020-12-16 @v1.5.1
|
||||
- 新增:细化未登录异常类型,提供五种场景值:未提供token、token无效、token已过期 、token已被顶下线、token已被踢下线 **[重要]**
|
||||
- 修复:修复`StpUtil.getSessionByLoginId(String loginId)`方法转换key出错的bug,感谢群友 @(#°Д°)、@一米阳光 发现的bug
|
||||
- 优化:修改方法`StpUtil.getSessionByLoginId(Object loginId)`的isCreate值默认为true
|
||||
- 修改:`方法delSaSession`修改为`deleteSaSession`,更加语义化的函数名称
|
||||
- 新增:新增`StpUtil.getTokenName()`方法,更语义化的获取tokenName
|
||||
- 新增:新增`SaTokenAction`框架行为Bean,方便重写逻辑
|
||||
- 优化:`Cookie操作`改为接口代理模式,使其可以被重写
|
||||
- 优化:文档里集成redis部分增加redis的pom依赖示例
|
||||
- 修复:登录验证-> `StpUtil.getLoginId_defaultNull()` 修复方法名错误的问题
|
||||
- 优化:优化`readme.md`
|
||||
- 升级:开源协议修改为`MIT`
|
||||
|
||||
### 2020-9-7 @v1.4.0
|
||||
- 优化:修改一些函数、变量名称,使其更符合阿里java代码规范
|
||||
- 优化:`tokenValue`的读取优先级改为:`request` > `body` > `header` > `cookie`
|
||||
|
@@ -9,7 +9,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token</artifactId>
|
||||
<version>1.4.0</version>
|
||||
<version>1.5.1</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
|
||||
## jar包下载
|
||||
[点击下载:sa-token-1.4.0.jar](https://color-test.oss-cn-qingdao.aliyuncs.com/sa-token/sa-token-1.4.0.jar)
|
||||
[点击下载:sa-token-1.5.1.jar](https://oss.dev33.cn/sa-token/sa-token-1.5.1.jar)
|
||||
|
||||
|
||||
|
||||
|
@@ -18,7 +18,7 @@
|
||||
<dependency>
|
||||
<groupId>cn.dev33</groupId>
|
||||
<artifactId>sa-token</artifactId>
|
||||
<version>1.4.0</version>
|
||||
<version>1.5.1</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
|
@@ -10,6 +10,12 @@
|
||||
## 具体API
|
||||
|
||||
#### StpUtil.logoutByLoginId(Object loginId)
|
||||
- 让指定loginId的会话注销登录(清退下线)
|
||||
|
||||
#### StpUtil.kickoutByLoginId(Object loginId)
|
||||
- 让指定loginId的会话注销登录(踢人下线)
|
||||
|
||||
|
||||
## 详解
|
||||
- `logoutByLoginId` 和 `kickoutByLoginId` 都可以将用户强制下线,不同点在于:
|
||||
- `logoutByLoginId` 是将人清退,用户得到的提示是 [token无效] ,对于失效原因尚未可知 (NotLoginException场景值为-2)
|
||||
- `kickoutByLoginId` 是将人踢下线,用户可得到明确提示 [已被踢下线] (NotLoginException场景值为-5)
|
||||
|
@@ -25,6 +25,7 @@
|
||||
#### StpUtil.checkLogin()
|
||||
- 检验当前会话是否已经登录, 如果未登录,则抛出异常:`NotLoginException`
|
||||
- 扩展:`NotLoginException` 对象可通过 `getLoginKey()` 方法获取具体是哪个 `StpLogic` 抛出的异常
|
||||
- 扩展:`NotLoginException` 对象可通过 `getType()` 方法获取具体的场景值,详细参考章节:[未登录场景值](/fun/not-login-scene)
|
||||
|
||||
#### StpUtil.getLoginId()
|
||||
- 获取当前会话登录id, 如果未登录,则抛出异常:`NotLoginException`
|
||||
@@ -38,7 +39,8 @@
|
||||
- 类似API还有:
|
||||
- `StpUtil.getLoginIdDefaultNull()` 获取当前会话登录id, 如果未登录,则返回null
|
||||
|
||||
#### getLoginIdByToken(String tokenValue)
|
||||
#### StpUtil.getLoginIdByToken(String tokenValue)
|
||||
- 获取指定token对应的登录id,如果未登录,则返回 null
|
||||
|
||||
|
||||
#### StpUtil.getTokenName()
|
||||
- 获取当前`StpLogic`的token名称
|
||||
|
Reference in New Issue
Block a user