Sa-Token icon indicating copy to clipboard operation
Sa-Token copied to clipboard

token-session无法手动设置有效期

Open Lord1910 opened this issue 7 months ago • 1 comments

使用版本:

<sa-token.version>1.34.0</sa-token.version> <sa-token-dao-redis.version>1.34.0</sa-token-dao-redis.version>

        <dependency>
            <groupId>cn.dev33</groupId>
            <artifactId>sa-token-core</artifactId>
            <version>${sa-token.version}</version>
        </dependency>
        <!-- sa-token 权限认证, 在线文档:https://sa-token.cc/ -->
        <dependency>
            <groupId>cn.dev33</groupId>
            <artifactId>sa-token-spring-boot3-starter</artifactId>
            <version>${sa-token.version}</version>
        </dependency>

        <dependency>
            <groupId>cn.dev33</groupId>
            <artifactId>sa-token-reactor-spring-boot3-starter</artifactId>
            <version>${sa-token.version}</version>
        </dependency>
        <!-- Sa-Token 集成 jwt -->
        <dependency>
            <groupId>cn.dev33</groupId>
            <artifactId>sa-token-jwt</artifactId>
            <version>${sa-token.version}</version>
        </dependency>
        <!-- Sa-Token 整合 Redis (使用jackson序列化方式) -->
        <dependency>
            <groupId>cn.dev33</groupId>
            <artifactId>sa-token-dao-redis-jackson</artifactId>
            <version>${sa-token-dao-redis.version}</version>
        </dependency>
        <dependency>
            <groupId>cn.dev33</groupId>
            <artifactId>sa-token-spring-boot-autoconfig</artifactId>
            <version>${sa-token.version}</version>
        </dependency>

涉及的功能模块:

cn.dev33.satoken.stp

测试步骤:

  • 我经过以下步骤测试: 1,yml 配置sa-token: timeout: 1800 activity-timeout: -1 后登陆时主动设置某些用户登陆时间为-1 Function<SaLoginModel, SaLoginModel> saLoginModelFunction = (v) -> { if (longLoginUser.contains(sysUser.getUserName())) { return v.setTimeout(-1); } return v; };

      StpUtil.login(sysUser.getRecordId(),
              saLoginModelFunction.apply(new SaLoginModel()
                      .setDevice("PC")))
    
  • 得出以下结果: redis中session,token都正常变为-1而token-session依然限时1800且没有任何方式设置

  • 我的理解是: 设置SaLoginModel.setTimeout(-1)后全部信息都应该跟着改变时长 请问,是我的理解不对,有需要配置的地方?

Lord1910 avatar Apr 30 '25 03:04 Lord1910

升级到最新版再试试

click33 avatar May 15 '25 22:05 click33