diff --git a/src/main/java/com/nawabali/nawabali/controller/UserController.java b/src/main/java/com/nawabali/nawabali/controller/UserController.java index c573504..bda84b3 100644 --- a/src/main/java/com/nawabali/nawabali/controller/UserController.java +++ b/src/main/java/com/nawabali/nawabali/controller/UserController.java @@ -35,8 +35,8 @@ public class UserController { private final UserService userService; @PostMapping("/logout") - public ResponseEntity logout(@RequestParam(name = "accessToken", required = false) String accessToken, HttpServletResponse response){ - return userService.logout(accessToken, response); + public ResponseEntity logout(@RequestParam(name = "accessToken", required = false) HttpServletRequest request, HttpServletResponse response){ + return userService.logout(request, response); } @PostMapping("/signup") diff --git a/src/main/java/com/nawabali/nawabali/security/Jwt/JwtUtil.java b/src/main/java/com/nawabali/nawabali/security/Jwt/JwtUtil.java index 5e06057..e24f4f0 100644 --- a/src/main/java/com/nawabali/nawabali/security/Jwt/JwtUtil.java +++ b/src/main/java/com/nawabali/nawabali/security/Jwt/JwtUtil.java @@ -147,7 +147,7 @@ public String getJwtFromHeader(HttpServletRequest request) { if (StringUtils.hasText(bearerToken) && bearerToken.startsWith(BEARER_PREFIX)) { return bearerToken.substring(7); } - return null; + return bearerToken; } // 토큰 검증 diff --git a/src/main/java/com/nawabali/nawabali/service/UserService.java b/src/main/java/com/nawabali/nawabali/service/UserService.java index e8a2a8f..86ed185 100644 --- a/src/main/java/com/nawabali/nawabali/service/UserService.java +++ b/src/main/java/com/nawabali/nawabali/service/UserService.java @@ -17,6 +17,7 @@ import com.nawabali.nawabali.repository.UserRepository; import com.nawabali.nawabali.repository.elasticsearch.UserSearchRepository; import com.nawabali.nawabali.security.Jwt.JwtUtil; +import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.Cookie; import lombok.RequiredArgsConstructor; @@ -50,10 +51,13 @@ public class UserService { private final JwtUtil jwtUtil; private final RedisTool redisTool; - public ResponseEntity logout(String accessToken, HttpServletResponse response) { + public ResponseEntity logout(HttpServletRequest request, HttpServletResponse response) { + String accessToken = jwtUtil.getJwtFromHeader(request); + log.info("accessToken : " + accessToken); + if (StringUtils.hasText(accessToken)) { log.info("accessToken : " + accessToken); - accessToken = accessToken.substring(7); +// accessToken = accessToken.substring(7); String refreshToken = redisTool.getValues(accessToken); if (!refreshToken.equals("false")) { log.info("refreshToken 삭제. key = " + accessToken); @@ -71,7 +75,11 @@ public ResponseEntity logout(String accessToken, HttpServletResponse res } response.addHeader(JwtUtil.AUTHORIZATION_HEADER, null); - return ResponseEntity.ok(accessToken); + Cookie cookie = new Cookie(JwtUtil.AUTHORIZATION_HEADER, null); + cookie.setMaxAge(0); + cookie.setPath("/"); + response.addCookie(cookie); + return ResponseEntity.ok("로그아웃 성공"); } @Transactional