From 931eef6f53a5520c9ac7fd51033ae0c0c3acd496 Mon Sep 17 00:00:00 2001 From: litianxiang Date: Fri, 29 May 2026 16:02:03 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=BB=91=E5=90=8D=E5=8D=95?= =?UTF-8?q?=E6=B8=85=E9=99=A4=E5=A4=B1=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ai/da/feign/gateway/GatewayFeignClient.java | 6 ++++++ .../java/com/ai/da/service/impl/AccountServiceImpl.java | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/main/java/com/ai/da/feign/gateway/GatewayFeignClient.java b/src/main/java/com/ai/da/feign/gateway/GatewayFeignClient.java index 03c2dc91..3ea37c42 100644 --- a/src/main/java/com/ai/da/feign/gateway/GatewayFeignClient.java +++ b/src/main/java/com/ai/da/feign/gateway/GatewayFeignClient.java @@ -18,4 +18,10 @@ public interface GatewayFeignClient { */ @PostMapping("/logout") Response logout(@RequestParam("userId") Long userId); + + /** + * 清除用户黑名单,允许该用户重新登录(登录时会自动调用)。 + */ + @PostMapping("/clear-blacklist") + Response clearBlacklist(@RequestParam("userId") Long userId); } diff --git a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java index 45bf2025..572c56ad 100644 --- a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java @@ -366,6 +366,12 @@ public class AccountServiceImpl extends ServiceImpl impl // 同步写入 Redis,重启后仍然可用 long jwtExpiration = tokenGenerateUtils.getJwtExpiration(); redisUtil.setLoginToken(account.getId(), token2, jwtExpiration); + // 清除黑名单,允许用户重新登录(仅当黑名单功能开启时) + try { + gatewayFeignClient.clearBlacklist(account.getId()); + } catch (Exception e) { + log.warn("登录时清除黑名单失败,userId={}, error={}", account.getId(), e.getMessage()); + } return token2; }