diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/redis/RedisUserTokenManager.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/redis/RedisUserTokenManager.java index 4e7af72a2cabc683204c711e43534f04b494859b..a32c733bbdd38cf8227a24b8916b65a2b63c2e06 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/redis/RedisUserTokenManager.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/token/redis/RedisUserTokenManager.java @@ -247,7 +247,20 @@ public class RedisUserTokenManager implements UserTokenManager { } return Mono.empty(); })) - .then(userTokenMapping.add(getUserRedisKey(userId), token)) + .then( + Mono.defer(() -> { + String key2 = getUserRedisKey(userId); + return userTokenMapping + .add(key2, token) + .then(Mono.defer(() -> { + if (expires > 0) { + return operations.expire(key2, Duration.ofMillis(expires)); + } + return Mono.empty(); + })); + }) + + ) .thenReturn(SimpleUserToken.of(map)); });