Skip to content

Commit

Permalink
FIX : 로그아웃 로직 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
juwum12 committed May 2, 2024
1 parent 19af60b commit a6c47d8
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ public class UserController {
private final UserService userService;

@PostMapping("/logout")
public ResponseEntity<String> logout(@RequestParam(name = "accessToken", required = false) String accessToken, HttpServletResponse response){
return userService.logout(accessToken, response);
public ResponseEntity<String> logout(@RequestParam(name = "accessToken", required = false) HttpServletRequest request, HttpServletResponse response){
return userService.logout(request, response);
}

@PostMapping("/signup")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

// 토큰 검증
Expand Down
14 changes: 11 additions & 3 deletions src/main/java/com/nawabali/nawabali/service/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -50,10 +51,13 @@ public class UserService {
private final JwtUtil jwtUtil;
private final RedisTool redisTool;

public ResponseEntity<String> logout(String accessToken, HttpServletResponse response) {
public ResponseEntity<String> 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);
Expand All @@ -71,7 +75,11 @@ public ResponseEntity<String> 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
Expand Down

0 comments on commit a6c47d8

Please sign in to comment.