优化自动生成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.TokenSign;
import cn.dev33.satoken.util.SaTokenConsts;
import cn.dev33.satoken.util.SaTokenInsideUtil;
/**
* sa-token 权限验证逻辑实现类
@ -535,7 +534,13 @@ public class StpLogic {
// 如果配置忽略token登录校验则必须保证token不为null (token为null的时候随机创建一个)
String tokenValue = getTokenValue();
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

View File

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