55import jakarta .servlet .http .HttpServletRequest ;
66import jakarta .servlet .http .HttpServletResponse ;
77import lombok .RequiredArgsConstructor ;
8+ import org .springframework .beans .factory .annotation .Autowired ;
9+ import org .springframework .data .redis .core .StringRedisTemplate ;
810import org .springframework .stereotype .Controller ;
911import org .springframework .web .bind .annotation .PostMapping ;
1012
1416@ RequiredArgsConstructor
1517public class LogoutController {
1618
19+ @ Autowired
20+ private StringRedisTemplate redisTemplate ;
1721 private final UserService userService ;
1822
1923 @ PostMapping ("/api/logout" )
@@ -23,6 +27,9 @@ public void logout(HttpServletRequest request, HttpServletResponse response) thr
2327 request .getSession ().invalidate ();
2428 System .out .println ("로그아웃 성공!" );
2529
30+ //레디스에서 정보 삭제
31+ removeUserActive (username );
32+
2633 // Update user status to false (로그아웃)
2734 if (username != null ) {
2835 userService .updateUserStatus (username , false );
@@ -38,4 +45,12 @@ public void logout(HttpServletRequest request, HttpServletResponse response) thr
3845 // CORS 대응을 위해 상태 코드만 반환하고, 프론트에서 리디렉션 처리하도록 함
3946 response .setStatus (HttpServletResponse .SC_OK );
4047 }
48+
49+ public void removeUserActive (String username ) {
50+ boolean activeDeleted = redisTemplate .delete ("commit_active:" + username );
51+ boolean lastCommittedDeleted = redisTemplate .delete ("commit_lastCommitted:" + username );
52+
53+ System .out .println ("commit_active 삭제: " + activeDeleted );
54+ System .out .println ("commit_lastCommitted 삭제: " + lastCommittedDeleted );
55+ }
4156}
0 commit comments