mirror of
https://gitee.com/dromara/sa-token.git
synced 2026-02-27 16:50:24 +08:00
新增登录时动态指定 active-timeout 能力
This commit is contained in:
@@ -90,12 +90,12 @@ StpUtil.getSessionBySessionId("xxxx-xxxx-xxxx"); // 获取指定key的Session,
|
||||
|
||||
### 6、Token有效期相关
|
||||
``` java
|
||||
// 临时有效期
|
||||
StpUtil.getTokenActivityTimeout(); // 获取当前 token [临时过期] 剩余有效时间 (单位: 秒)
|
||||
StpUtil.checkActivityTimeout(); // 检查当前token 是否已经[临时过期],如果已经过期则抛出异常
|
||||
StpUtil.updateLastActivityToNow(); // 续签当前token:(将 [最后操作时间] 更新为当前时间戳)
|
||||
// Token 最低活跃频率
|
||||
StpUtil.getTokenActiveTimeout(); // 获取当前 token 距离被冻结还剩多少时间 (单位: 秒)
|
||||
StpUtil.checkActiveTimeout(); // 检查当前token 是否已经被冻结,如果是则抛出异常
|
||||
StpUtil.updateLastActiveToNow(); // 续签当前token:(将 [最后操作时间] 更新为当前时间戳)
|
||||
|
||||
// 长久有效期
|
||||
// Token 有效期
|
||||
StpUtil.getTokenTimeout(); // 获取当前登录者的 token 剩余有效时间 (单位: 秒)
|
||||
StpUtil.getSessionTimeout(); // 获取当前登录者的 Account-Session 剩余有效时间 (单位: 秒)
|
||||
StpUtil.getTokenSessionTimeout(); // 获取当前 Token-Session 剩余有效时间 (单位: 秒)
|
||||
|
||||
@@ -79,7 +79,7 @@ SaToken 中的所有异常都是继承于 `SaTokenException` 的,也就是说
|
||||
| 11013 | Token已过期 |
|
||||
| 11014 | Token已被顶下线 |
|
||||
| 11015 | Token已被踢下线 |
|
||||
| 11016 | Token已临时过期 |
|
||||
| 11016 | Token已被冻结 |
|
||||
| 11031 | 在未集成 sa-token-jwt 插件时调用 getExtra() 抛出异常 |
|
||||
| 11041 | 缺少指定的角色 |
|
||||
| 11051 | 缺少指定的权限 |
|
||||
|
||||
@@ -15,7 +15,7 @@ token信息Model: 用来描述一个token的常用参数
|
||||
"tokenTimeout": 2591977, // token剩余有效期 (单位: 秒)
|
||||
"sessionTimeout": 2591977, // Account-Session剩余有效时间 (单位: 秒)
|
||||
"tokenSessionTimeout": -2, // Token-Session剩余有效时间 (单位: 秒) (-2表示系统中不存在这个缓存)
|
||||
"tokenActivityTimeout": -1, // token剩余无操作有效时间 (单位: 秒)
|
||||
"tokenActiveTimeout": -1, // token 距离被冻结还剩的时间 (单位: 秒)
|
||||
"loginDevice": "default-device" // 登录设备类型
|
||||
},
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<!-- 本篇介绍Token有效期的详细用法 -->
|
||||
|
||||
Sa-Token 提供两种 Token 自动过期策略,分别是 `timeout` 与 `activity-timeout`,配置方法如下:
|
||||
Sa-Token 提供两种 Token 自动过期策略,分别是 `timeout` 与 `active-timeout`,配置方法如下:
|
||||
|
||||
<!---------------------------- tabs:start ---------------------------->
|
||||
<!------------- tab:yaml 风格 ------------->
|
||||
@@ -11,14 +11,14 @@ sa-token:
|
||||
# token 有效期(单位:秒),默认30天,-1代表永不过期
|
||||
timeout: 2592000
|
||||
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
activity-timeout: -1
|
||||
active-timeout: -1
|
||||
```
|
||||
<!------------- tab:properties 风格 ------------->
|
||||
``` properties
|
||||
# token 有效期(单位:秒),默认30天,-1代表永不过期
|
||||
sa-token.timeout=2592000
|
||||
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
sa-token.activity-timeout=-1
|
||||
sa-token.active-timeout=-1
|
||||
```
|
||||
<!---------------------------- tabs:end ---------------------------->
|
||||
|
||||
@@ -29,7 +29,7 @@ sa-token.activity-timeout=-1
|
||||
> 2. 银行为你颁发一张储蓄卡(系统为你颁发一个Token),以后每次存取钱都要带上这张卡(后续每次访问系统都要提交 Token)。
|
||||
> 3. 银行为这张卡设定两个过期时间:
|
||||
> - 第一个是 `timeout`,代表这张卡的长久有效期,就是指这张卡最长能用多久,假设 `timeout=3年`,那么3年后此卡将被银行删除,想要继续来银行办理业务必须重新办卡(Token 过期后想要访问系统必须重新登录)。
|
||||
> - 第二个就是 `activity-timeout`,代表这张卡的最低活跃频率限制,就是指这张卡必须每隔多久来银行一次,假设 `activity-timeout=1月` ,你如果超过1月不来办一次业务,银行就将你的卡冻结,列为长期不动户(Token 长期不访问系统,被冻结,但不会被删除)。
|
||||
> - 第二个就是 `active-timeout`,代表这张卡的最低活跃频率限制,就是指这张卡必须每隔多久来银行一次,假设 `active-timeout=1月` ,你如果超过1月不来办一次业务,银行就将你的卡冻结,列为长期不动户(Token 长期不访问系统,被冻结,但不会被删除)。
|
||||
> 4. 两个过期策略可以单独配置,也可以同时配置,只要有其中一个有效期超出了范围,这张卡就会变得不可用(两个有效期只要有一个过期了,Token就无法成功访问系统了)。
|
||||
|
||||
下面是对两个过期策略的详细解释:
|
||||
@@ -40,33 +40,33 @@ sa-token.activity-timeout=-1
|
||||
3. `timeout`的值配置为-1后,代表永久有效,不会过期。
|
||||
|
||||
|
||||
### activity-timeout
|
||||
1. `activity-timeout`代表最低活跃频率,单位/秒,例如将其配置为 1800 (30分钟),代表用户如果30分钟无操作,则此Token会立即过期(被冻结,但不会删除掉)。
|
||||
### active-timeout
|
||||
1. `active-timeout`代表最低活跃频率,单位/秒,例如将其配置为 1800 (30分钟),代表用户如果30分钟无操作,则此Token会立即过期(被冻结,但不会删除掉)。
|
||||
2. 如果在30分钟内用户有操作,则会再次续签30分钟,用户如果一直操作则会一直续签,直到连续30分钟无操作,Token才会过期。
|
||||
3. `activity-timeout`的值配置为-1后,代表永久有效,不会过期,此时也无需频繁续签。
|
||||
3. `active-timeout`的值配置为-1后,代表永久有效,不会过期,此时也无需频繁续签。
|
||||
|
||||
|
||||
### 关于activity-timeout的续签
|
||||
如果`activity-timeout`配置了大于零的值,Sa-Token 会在登录时开始计时,在每次直接或间接调用`getLoginId()`时进行一次冻结检查与续签操作。
|
||||
### 关于active-timeout的续签
|
||||
如果`active-timeout`配置了大于零的值,Sa-Token 会在登录时开始计时,在每次直接或间接调用`getLoginId()`时进行一次冻结检查与续签操作。
|
||||
此时会有两种情况:
|
||||
1. 一种是会话无操作时间太长,Token已经被冻结,此时框架会抛出`NotLoginException`异常(场景值=-3),
|
||||
2. 另一种则是会话在`activity-timeout`有效期内通过检查,此时Token可以成功续签
|
||||
2. 另一种则是会话在`active-timeout`有效期内通过检查,此时Token可以成功续签
|
||||
|
||||
|
||||
### 我可以手动续签 activity-timeout 吗?
|
||||
### 我可以手动续签 active-timeout 吗?
|
||||
**可以!**
|
||||
如果框架的自动续签算法无法满足您的业务需求,你可以进行手动续签,Sa-Token 提供两个API供你操作:
|
||||
1. `StpUtil.checkActivityTimeout()`: 检查当前Token 是否已经被冻结,如果是则抛出异常
|
||||
2. `StpUtil.updateLastActivityToNow()`: 续签当前Token:(将 [最后操作时间] 更新为当前时间戳)
|
||||
1. `StpUtil.checkActiveTimeout()`: 检查当前Token 是否已经被冻结,如果是则抛出异常
|
||||
2. `StpUtil.updateLastActiveToNow()`: 续签当前Token:(将 [最后操作时间] 更新为当前时间戳)
|
||||
|
||||
注意:在手动续签时,即使 Token 已经被冻结也可续签成功(解冻),如果此场景下需要提示续签失败,可采用先检查再续签的形式保证Token有效性
|
||||
|
||||
例如以下代码:
|
||||
``` java
|
||||
// 先检查是否已被冻结
|
||||
StpUtil.checkActivityTimeout();
|
||||
StpUtil.checkActiveTimeout();
|
||||
// 检查通过后继续续签
|
||||
StpUtil.updateLastActivityToNow();
|
||||
StpUtil.updateLastActiveToNow();
|
||||
```
|
||||
|
||||
同时,你还可以关闭框架的自动续签(在配置文件中配置 `autoRenew=false` ),此时续签操作完全由开发者控制,框架不再自动进行任何续签操作
|
||||
@@ -75,16 +75,16 @@ StpUtil.updateLastActivityToNow();
|
||||
|
||||
``` java
|
||||
// 为指定 Token 续签
|
||||
StpUtil.stpLogic.updateLastActivityToNow(tokenValue);
|
||||
StpUtil.stpLogic.updateLastActiveToNow(tokenValue);
|
||||
```
|
||||
|
||||
|
||||
### timeout 与 activity-timeout 可以同时使用吗?
|
||||
### timeout 与 active-timeout 可以同时使用吗?
|
||||
**可以同时使用!**
|
||||
两者的认证逻辑彼此独立,互不干扰,可以同时使用。
|
||||
|
||||
|
||||
### StpUtil 类中哪些公开方法支持临时有效期自动续签 activity-timeout?
|
||||
### StpUtil 类中哪些公开方法支持自动续签 active-timeout?
|
||||
> 直接或间接获取了当前用户id的方法 (间接调用过 StpLogic.getLoginId() 方法)
|
||||
|
||||
| 包括但不限于这些: |
|
||||
|
||||
@@ -73,18 +73,20 @@ SaFoxUtil.toList(... strs); // String 数组转集合
|
||||
|
||||
1、首先在项目根目录,创建一个配置文件:`sa-token.properties`
|
||||
|
||||
``` java
|
||||
# token名称 (同时也是cookie名称)
|
||||
``` properties
|
||||
# token 名称 (同时也是 cookie 名称)
|
||||
tokenName=satoken
|
||||
# token有效期,单位s 默认30天, -1代表永不过期
|
||||
# token 有效期(单位:秒) 默认30天,-1 代表永久有效
|
||||
timeout=2592000
|
||||
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
|
||||
activityTimeout=-1
|
||||
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) =-1
|
||||
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
activeTimeout=-1
|
||||
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
|
||||
isConcurrent=true
|
||||
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
|
||||
isShare=true
|
||||
# token风格
|
||||
# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
|
||||
tokenStyle=uuid
|
||||
# 是否输出操作日志
|
||||
isLog=false
|
||||
```
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ Sa-Token 的部分 API 只能在 Web 上下文中才能调用,例如:`StpUti
|
||||
- 可能9:可能是多账号鉴权的关系,在多账号模式下,如果是 `StpUserUtil.login()` 颁发的token,你从 `StpUtil.checkLogin()` 进行校验,永远都是无效token,因为账号体系没对上。
|
||||
|
||||
**如果是:Token已过期:6ad93254-b286-4ec9-9997-4430b0341ca0**
|
||||
- 可能1:前端提交的 token 临时过期(activity-timeout超时了,比如配置了 activity-timeout=120,但是超过了120秒没有访问接口)。
|
||||
- 可能1:前端提交的 token 已被冻结(active-timeout超时了,比如配置了 active-timeout=120,但是超过了120秒没有访问接口)。
|
||||
- 可能2:集成jwt,而且使用的是 Mixin 或 Stateless 模式,而且token过期了(timeout超时了)。
|
||||
|
||||
**如果是:Token已被顶下线:6ad93254-b286-4ec9-9997-4430b0341ca0**
|
||||
|
||||
@@ -18,7 +18,7 @@ Sa-Token 无意发明任何晦涩概念提升逼格,但在处理 issue 、Q群
|
||||
|
||||
#### 两种过期时间:
|
||||
- timeout:会话 Token 的长久有效期。
|
||||
- activity-timeout:会话的临时有效期。
|
||||
- active-timeout:会话 Token 的最低活跃频率。
|
||||
|
||||
两者的差别详见:[Token有效期详解](/fun/token-timeout)
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbklkIjoiMTAwMDEiLCJybiI6IjZYYzgySzB
|
||||
| 角色认证 | 支持 | 支持 | 支持 |
|
||||
| 权限认证 | 支持 | 支持 | 支持 |
|
||||
| timeout 有效期 | 支持 | 支持 | 支持 |
|
||||
| activity-timeout 有效期 | 支持 | 支持 | 不支持 |
|
||||
| active-timeout 有效期 | 支持 | 支持 | 不支持 |
|
||||
| id反查Token | 支持 | 支持 | 不支持 |
|
||||
| 会话管理 | 支持 | 部分支持 | 不支持 |
|
||||
| 注解鉴权 | 支持 | 支持 | 支持 |
|
||||
|
||||
@@ -57,18 +57,18 @@ server:
|
||||
sa-token:
|
||||
# token 名称(同时也是 cookie 名称)
|
||||
token-name: satoken
|
||||
# token 有效期(单位:秒),默认30天,-1代表永不过期
|
||||
# token 有效期(单位:秒) 默认30天,-1 代表永久有效
|
||||
timeout: 2592000
|
||||
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
activity-timeout: -1
|
||||
# 是否允许同一账号多地同时登录(为 true 时允许一起登录,为 false 时新登录挤掉旧登录)
|
||||
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
active-timeout: -1
|
||||
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
|
||||
is-concurrent: true
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token,为 false 时每次登录新建一个 token)
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
|
||||
is-share: true
|
||||
# token 风格
|
||||
# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
|
||||
token-style: uuid
|
||||
# 是否输出操作日志
|
||||
is-log: false
|
||||
# 是否输出操作日志
|
||||
is-log: true
|
||||
```
|
||||
|
||||
<!------------- tab:application.properties 风格 ------------->
|
||||
@@ -78,20 +78,20 @@ server.port=8081
|
||||
|
||||
############## Sa-Token 配置 (文档: https://sa-token.cc) ##############
|
||||
|
||||
# token名称(同时也是 cookie 名称)
|
||||
# token 名称(同时也是 cookie 名称)
|
||||
sa-token.token-name=satoken
|
||||
# token 有效期(单位:秒),默认30天,-1代表永不过期
|
||||
# token 有效期(单位:秒) 默认30天,-1 代表永久有效
|
||||
sa-token.timeout=2592000
|
||||
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
sa-token.activity-timeout=-1
|
||||
# 是否允许同一账号多地同时登录(为 true 时允许一起登录,为 false 时新登录挤掉旧登录)
|
||||
sa-token.active-timeout=-1
|
||||
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
|
||||
sa-token.is-concurrent=true
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token,为 false 时每次登录新建一个 token)
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
|
||||
sa-token.is-share=true
|
||||
# token 风格
|
||||
# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
|
||||
sa-token.token-style=uuid
|
||||
# 是否输出操作日志
|
||||
sa-token.is-log=false
|
||||
sa-token.is-log=true
|
||||
```
|
||||
|
||||
<!---------------------------- tabs:end ---------------------------->
|
||||
|
||||
@@ -68,18 +68,18 @@ server:
|
||||
sa-token:
|
||||
# token 名称(同时也是 cookie 名称)
|
||||
token-name: satoken
|
||||
# token 有效期(单位:秒),默认30天,-1代表永不过期
|
||||
# token 有效期(单位:秒) 默认30天,-1 代表永久有效
|
||||
timeout: 2592000
|
||||
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
activity-timeout: -1
|
||||
# 是否允许同一账号多地同时登录(为 true 时允许一起登录,为 false 时新登录挤掉旧登录)
|
||||
active-timeout: -1
|
||||
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
|
||||
is-concurrent: true
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token,为 false 时每次登录新建一个 token)
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
|
||||
is-share: true
|
||||
# token 风格
|
||||
# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
|
||||
token-style: uuid
|
||||
# 是否输出操作日志
|
||||
is-log: false
|
||||
is-log: true
|
||||
```
|
||||
|
||||
<!------------- tab:app.properties 风格 ------------->
|
||||
@@ -89,20 +89,20 @@ server.port=8081
|
||||
|
||||
############## Sa-Token 配置 (文档: https://sa-token.cc) ##############
|
||||
|
||||
# token名称(同时也是 cookie 名称)
|
||||
# token 名称(同时也是 cookie 名称)
|
||||
sa-token.token-name=satoken
|
||||
# token 有效期(单位:秒),默认30天,-1代表永不过期
|
||||
# token 有效期(单位:秒) 默认30天,-1 代表永久有效
|
||||
sa-token.timeout=2592000
|
||||
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
sa-token.activity-timeout=-1
|
||||
# 是否允许同一账号多地同时登录(为 true 时允许一起登录,为 false 时新登录挤掉旧登录)
|
||||
sa-token.active-timeout=-1
|
||||
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
|
||||
sa-token.is-concurrent=true
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token,为 false 时每次登录新建一个 token)
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
|
||||
sa-token.is-share=true
|
||||
# token 风格
|
||||
# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
|
||||
sa-token.token-style=uuid
|
||||
# 是否输出操作日志
|
||||
sa-token.is-log=false
|
||||
sa-token.is-log=true
|
||||
```
|
||||
|
||||
<!---------------------------- tabs:end ---------------------------->
|
||||
|
||||
@@ -14,38 +14,38 @@
|
||||
sa-token:
|
||||
# token 名称(同时也是 cookie 名称)
|
||||
token-name: satoken
|
||||
# token 有效期(单位:秒),默认30天,-1代表永不过期
|
||||
# token 有效期(单位:秒) 默认30天,-1 代表永久有效
|
||||
timeout: 2592000
|
||||
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
activity-timeout: -1
|
||||
# 是否允许同一账号多地同时登录(为 true 时允许一起登录,为 false 时新登录挤掉旧登录)
|
||||
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
active-timeout: -1
|
||||
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
|
||||
is-concurrent: true
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token,为 false 时每次登录新建一个 token)
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
|
||||
is-share: true
|
||||
# token 风格
|
||||
# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
|
||||
token-style: uuid
|
||||
# 是否输出操作日志
|
||||
is-log: false
|
||||
# 是否输出操作日志
|
||||
is-log: true
|
||||
```
|
||||
|
||||
<!------------- tab:properties 风格 ------------->
|
||||
``` properties
|
||||
############## Sa-Token 配置 (文档: https://sa-token.cc) ##############
|
||||
|
||||
# token名称(同时也是 cookie 名称)
|
||||
# token 名称(同时也是 cookie 名称)
|
||||
sa-token.token-name=satoken
|
||||
# token 有效期(单位:秒),默认30天,-1代表永不过期
|
||||
# token 有效期(单位:秒) 默认30天,-1 代表永久有效
|
||||
sa-token.timeout=2592000
|
||||
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
sa-token.activity-timeout=-1
|
||||
# 是否允许同一账号多地同时登录(为 true 时允许一起登录,为 false 时新登录挤掉旧登录)
|
||||
sa-token.active-timeout=-1
|
||||
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
|
||||
sa-token.is-concurrent=true
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token,为 false 时每次登录新建一个 token)
|
||||
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
|
||||
sa-token.is-share=true
|
||||
# token 风格
|
||||
# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
|
||||
sa-token.token-style=uuid
|
||||
# 是否输出操作日志
|
||||
sa-token.is-log=false
|
||||
sa-token.is-log=true
|
||||
```
|
||||
|
||||
<!---------------------------- tabs:end ---------------------------->
|
||||
@@ -70,7 +70,7 @@ public class SaTokenConfigure {
|
||||
SaTokenConfig config = new SaTokenConfig();
|
||||
config.setTokenName("satoken"); // token 名称(同时也是 cookie 名称)
|
||||
config.setTimeout(30 * 24 * 60 * 60); // token 有效期(单位:秒),默认30天,-1代表永不过期
|
||||
config.setActivityTimeout(-1); // token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
config.setActiveTimeout(-1); // token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
config.setIsConcurrent(true); // 是否允许同一账号多地同时登录(为 true 时允许一起登录,为 false 时新登录挤掉旧登录)
|
||||
config.setIsShare(true); // 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token,为 false 时每次登录新建一个 token)
|
||||
config.setTokenStyle("uuid"); // token 风格
|
||||
@@ -92,7 +92,7 @@ public class SaTokenConfigure {
|
||||
public void configSaToken(SaTokenConfig config) {
|
||||
config.setTokenName("satoken"); // token 名称(同时也是 cookie 名称)
|
||||
config.setTimeout(30 * 24 * 60 * 60); // token 有效期(单位:秒),默认30天,-1代表永不过期
|
||||
config.setActivityTimeout(-1); // token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
config.setActiveTimeout(-1); // token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
|
||||
config.setIsConcurrent(true); // 是否允许同一账号多地同时登录(为 true 时允许一起登录,为 false 时新登录挤掉旧登录)
|
||||
config.setIsShare(true); // 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token,为 false 时每次登录新建一个 token)
|
||||
config.setTokenStyle("uuid"); // token 风格
|
||||
@@ -116,7 +116,7 @@ public class SaTokenConfigure {
|
||||
| :-------- | :-------- | :-------- | :-------- |
|
||||
| tokenName | String | satoken | Token 名称 (同时也是 Cookie 名称、数据持久化前缀) |
|
||||
| timeout | long | 2592000 | Token 有效期(单位:秒),默认30天,-1代表永不过期 [参考:token有效期详解](/fun/token-timeout) |
|
||||
| activityTimeout | long | -1 | Token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结(例如可以设置为1800代表30分钟内无操作就过期) [参考:token有效期详解](/fun/token-timeout) |
|
||||
| activeTimeout | long | -1 | Token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结(例如可以设置为1800代表30分钟内无操作就冻结) [参考:token有效期详解](/fun/token-timeout) |
|
||||
| isConcurrent | Boolean | true | 是否允许同一账号并发登录 (为 true 时允许一起登录,为 false 时新登录挤掉旧登录) |
|
||||
| isShare | Boolean | true | 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token,为 false 时每次登录新建一个 token) |
|
||||
| maxLoginCount | int | 12 | 同一账号最大登录数量,-1代表不限 (只有在 `isConcurrent=true`,`isShare=false` 时此配置才有效),[详解](/use/config?id=配置项详解:maxlogincount) |
|
||||
|
||||
Reference in New Issue
Block a user