Skip to content

Commit

Permalink
FIX : 로그아웃 로직 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
juwum12 committed May 6, 2024
1 parent f57dece commit e71a2fd
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,8 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
);

http.logout(logoutconfigurer->logoutconfigurer
.addLogoutHandler(jwtLogoutHandler)
.logoutUrl("/users/logout")
// .addLogoutHandler(jwtLogoutHandler)
.logoutSuccessHandler(new HttpStatusReturningLogoutSuccessHandler()));

// 필터 관리
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@
public class UserController {
private final UserService userService;

// @PostMapping("/logout")
// public ResponseEntity<String> logout(HttpServletRequest request, HttpServletResponse response){
// return userService.logout(request, response);
// }
@PostMapping("/logout")
public void logout(HttpServletRequest request, HttpServletResponse response){
userService.logout(request, response);
}

@PostMapping("/signup")
@Operation(summary = "회원가입", description = "회원가입에 사용하는 API")
Expand Down
49 changes: 24 additions & 25 deletions src/main/java/com/nawabali/nawabali/service/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -51,41 +51,40 @@ public class UserService {
private final JwtUtil jwtUtil;
private final RedisTool redisTool;

public ResponseEntity<String> logout(HttpServletRequest request, HttpServletResponse response) {
public void logout(HttpServletRequest request, HttpServletResponse response) {

response.addHeader(JwtUtil.AUTHORIZATION_HEADER, null);
Cookie cookie = new Cookie(JwtUtil.AUTHORIZATION_HEADER, null);
cookie.setMaxAge(0);
cookie.setPath("/");
cookie.setDomain("dongnaebangnae.com");
response.addCookie(cookie);
return ResponseEntity.ok("로그아웃 성공");

// String headerAccessToken = jwtUtil.getJwtFromHeader(request);
// String cookieAccessToken = jwtUtil.getTokenFromCookieAndName(request, JwtUtil.AUTHORIZATION_HEADER);
String accessToken = jwtUtil.getTokenFromCookieAndName(request, JwtUtil.AUTHORIZATION_HEADER);
// log.info("accessToken : " + headerAccessToken);
// log.info("cookieAccessToken : " + cookieAccessToken);


//
// if (StringUtils.hasText(accessToken)) {
// log.info("accessToken : " + accessToken);
// accessToken = jwtUtil.substringToken(accessToken);
// String refreshToken = redisTool.getValues(accessToken);
// if (!refreshToken.equals("false")) {
// log.info("refreshToken 삭제. key = " + accessToken);
// redisTool.deleteValues(accessToken);
//
// //access의 남은 유효시간만큼 redis에 블랙리스트로 저장
// log.info("redis에 블랙리스트 저장");
// Long remainedExpiration = jwtUtil.getUserInfoFromToken(accessToken).getExpiration().getTime();
// Long now = new Date().getTime();
// if (remainedExpiration > now) {
// long newExpiration = remainedExpiration - now;
// redisTool.setValues(accessToken, "logout", Duration.ofMillis(newExpiration));
// }
// }
// }
log.info("cookieAccessToken : " + accessToken);



if (StringUtils.hasText(accessToken)) {
log.info("accessToken : " + accessToken);
accessToken = jwtUtil.substringToken(accessToken);
String refreshToken = redisTool.getValues(accessToken);
if (!refreshToken.equals("false")) {
log.info("refreshToken 삭제. key = " + accessToken);
redisTool.deleteValues(accessToken);

//access의 남은 유효시간만큼 redis에 블랙리스트로 저장
log.info("redis에 블랙리스트 저장");
Long remainedExpiration = jwtUtil.getUserInfoFromToken(accessToken).getExpiration().getTime();
Long now = new Date().getTime();
if (remainedExpiration > now) {
long newExpiration = remainedExpiration - now;
redisTool.setValues(accessToken, "logout", Duration.ofMillis(newExpiration));
}
}
}


}
Expand Down

0 comments on commit e71a2fd

Please sign in to comment.