优化自动生成token的算法

This commit is contained in:
shengzhang
2021-01-09 19:34:43 +08:00
parent 6a677ca779
commit 2d3a262e2f
2 changed files with 8 additions and 4 deletions

View File

@@ -22,7 +22,6 @@ import cn.dev33.satoken.exception.NotRoleException;
import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.session.SaSession;
import cn.dev33.satoken.session.TokenSign; import cn.dev33.satoken.session.TokenSign;
import cn.dev33.satoken.util.SaTokenConsts; import cn.dev33.satoken.util.SaTokenConsts;
import cn.dev33.satoken.util.SaTokenInsideUtil;
/** /**
* sa-token 权限验证,逻辑实现类 * sa-token 权限验证,逻辑实现类
@@ -535,7 +534,13 @@ public class StpLogic {
// 如果配置忽略token登录校验则必须保证token不为null (token为null的时候随机创建一个) // 如果配置忽略token登录校验则必须保证token不为null (token为null的时候随机创建一个)
String tokenValue = getTokenValue(); String tokenValue = getTokenValue();
if(tokenValue == null || Objects.equals(tokenValue, "")) { if(tokenValue == null || Objects.equals(tokenValue, "")) {
setLoginId(SaTokenInsideUtil.getMarking28()); // 随机一个token送给ta
tokenValue = createTokenValue(null);
SaTokenManager.getSaTokenServlet().getRequest().setAttribute(SaTokenConsts.JUST_CREATED_SAVE_KEY, tokenValue);
setLastActivityToNow(tokenValue); // 写入 [最后操作时间]
if(getConfig().getIsReadCookie() == true){ // cookie注入
SaTokenManager.getSaTokenCookie().addCookie(SaTokenManager.getSaTokenServlet().getResponse(), getTokenName(), tokenValue, "/", (int)getConfig().getTimeout());
}
} }
} }
// 返回这个token对应的专属session // 返回这个token对应的专属session

View File

@@ -8,7 +8,7 @@ spring:
# token名称 (同时也是cookie名称) # token名称 (同时也是cookie名称)
token-name: satoken token-name: satoken
# token有效期单位s 默认30天, -1代表永不过期 # token有效期单位s 默认30天, -1代表永不过期
timeout: -1 timeout: 2592000
# token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒 # token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
activity-timeout: -1 activity-timeout: -1
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
@@ -19,7 +19,6 @@ spring:
token-style: uuid token-style: uuid
# redis配置 # redis配置
redis: redis:
# Redis数据库索引默认为0 # Redis数据库索引默认为0