diff --git a/src/main/java/com/bao/dating/service/impl/ChatServiceImpl.java b/src/main/java/com/bao/dating/service/impl/ChatServiceImpl.java index c255336..ca27edf 100644 --- a/src/main/java/com/bao/dating/service/impl/ChatServiceImpl.java +++ b/src/main/java/com/bao/dating/service/impl/ChatServiceImpl.java @@ -236,7 +236,7 @@ public class ChatServiceImpl implements ChatService { vo.setSessionName("用户" + session.getTargetUserId()); vo.setAvatarUrl(null); } - vo.setOnline(userService.isUserOnline(currentUserId)); + vo.setOnline(userService.isUserOnline(vo.getTargetUserId())); return vo; }).collect(Collectors.toList()); } diff --git a/src/main/java/com/bao/dating/service/impl/UserServiceImpl.java b/src/main/java/com/bao/dating/service/impl/UserServiceImpl.java index d17c298..3f3b9ec 100644 --- a/src/main/java/com/bao/dating/service/impl/UserServiceImpl.java +++ b/src/main/java/com/bao/dating/service/impl/UserServiceImpl.java @@ -124,6 +124,9 @@ public class UserServiceImpl implements UserService { @Override public void logout(String token) { Claims claims = JwtUtil.getClaimsFromToken(token); + // 获取token信息 + String subject = claims.getSubject(); + // 获取token的过期时间 Date expiration = claims.getExpiration(); // 判断 token 是否已过期 long ttl = expiration.getTime() - System.currentTimeMillis(); @@ -132,6 +135,10 @@ public class UserServiceImpl implements UserService { return; } + // 从Redis中删除登录token记录 + String loginTokenKey = "login:token:" + subject; + redisTemplate.delete(loginTokenKey); + String logoutKey = "jwt:blacklist:" + token; redisTemplate.opsForValue().set( logoutKey,