From 66769009d814c7a86730ece21e771a9f18ba8fcf Mon Sep 17 00:00:00 2001 From: zrll_ Date: Wed, 20 Dec 2023 17:33:45 +0800 Subject: [PATCH] add logout after changing password --- .../vastsea/toyou/service/impl/UserServiceImpl.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/cc/vastsea/toyou/service/impl/UserServiceImpl.java b/src/main/java/cc/vastsea/toyou/service/impl/UserServiceImpl.java index 3597060..0433fb3 100644 --- a/src/main/java/cc/vastsea/toyou/service/impl/UserServiceImpl.java +++ b/src/main/java/cc/vastsea/toyou/service/impl/UserServiceImpl.java @@ -21,10 +21,13 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.util.Map; +import java.util.Objects; import java.util.UUID; import java.util.concurrent.TimeUnit; -import static cc.vastsea.toyou.constant.UserConstant.*; +import static cc.vastsea.toyou.constant.UserConstant.USER_LOGIN_STATE; +import static cc.vastsea.toyou.constant.UserConstant.USER_TOKEN_HEADER; @Service @Slf4j @@ -287,6 +290,13 @@ public void changePassword(User user, String oldPassword, String newPassword) { throw new BusinessException(StatusCode.BAD_REQUEST, "密码格式错误"); } user.setPassword(PasswordUtil.encodePassword(newPassword)); + //log user out + Map tokenMap = userLoginToken.asMap(); + for (Map.Entry entry : tokenMap.entrySet()) { + if (Objects.equals(entry.getValue(), user.getUid())) { + userLoginToken.invalidate(entry.getKey()); + } + } userMapper.updateById(user); }