From 2d3a262e2feb59310b908a2d4c7df5779985016c Mon Sep 17 00:00:00 2001 From: shengzhang <2393584716@qq.com> Date: Sat, 9 Jan 2021 19:34:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=87=AA=E5=8A=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90token=E7=9A=84=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/dev33/satoken/stp/StpLogic.java | 9 +++++++-- .../src/main/resources/application.yml | 3 +-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java index 1e1f9582..ab2ea02d 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java @@ -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 diff --git a/sa-token-demo-springboot/src/main/resources/application.yml b/sa-token-demo-springboot/src/main/resources/application.yml index 6aebe709..0ee1952f 100644 --- a/sa-token-demo-springboot/src/main/resources/application.yml +++ b/sa-token-demo-springboot/src/main/resources/application.yml @@ -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)