Skip to content

Commit 222add4

Browse files
committed
[fix] : 로그아웃시 토큰 요청수정
1 parent d6727a8 commit 222add4

File tree

5 files changed

+18
-9
lines changed

5 files changed

+18
-9
lines changed

src/main/java/com/cona/KUsukKusuk/global/exception/HttpExceptionCode.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public enum HttpExceptionCode {
2222
EMAIL_USER_NOT_EQUAL(HttpStatus.NOT_FOUND,"해당이메일과 사용자 정보가 일치하지 않습니다."),
2323

2424
INCORRECT_REFRESH_TOKEN(HttpStatus.UNAUTHORIZED, "올바르지 않은 리프레시 토큰입니다. 기한이 만료되었거나, 이미 로그아웃이 완료되어 DB에 존재하지 않는 상태입니다."),
25-
EXPIRED_TOKEN(HttpStatus.BAD_REQUEST, "만료된 토큰입니다. 토큰을 재발급하세요"),
25+
EXPIRED_TOKEN(HttpStatus.UNAUTHORIZED, "만료된 토큰입니다. 토큰을 재발급하세요"),
2626
WRONG_TYPE_TOKEN(HttpStatus.UNAUTHORIZED, "토큰의 정보가 임의로 변경되었습니다."),
2727
UNKNOWN_TOKEN(HttpStatus.UNAUTHORIZED, "인증 토큰이 존재하지 않습니다."),
2828
UNSUPPORTED_TOKEN(HttpStatus.UNAUTHORIZED, "토큰의 길이나 형식이 올바르지 않습니다."),

src/main/java/com/cona/KUsukKusuk/global/security/JWTUtil.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,8 @@ public String getAccessToken(HttpServletRequest request) {
9393
return null;
9494
}
9595

96-
// Request Header에 Refresh Token 정보를 추출하는 메서드
97-
public String getRefreshToken(HttpServletRequest request) {
98-
String bearerToken = request.getHeader(REFRESH_HEADER);
96+
public String getRefreshToken(String bearerToken) {
97+
9998
if (StringUtils.hasText(bearerToken)) {
10099
return bearerToken.substring(7);
101100
}

src/main/java/com/cona/KUsukKusuk/user/controller/UserController.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.cona.KUsukKusuk.user.dto.CheckPasswordRequest;
77
import com.cona.KUsukKusuk.user.dto.FindPasswordRequest;
88
import com.cona.KUsukKusuk.user.dto.FindPasswordResponse;
9+
import com.cona.KUsukKusuk.user.dto.LogoutRequest;
910
import com.cona.KUsukKusuk.user.dto.TokenRefreshRequest;
1011
import com.cona.KUsukKusuk.user.dto.TokenRefreshResponse;
1112
import com.cona.KUsukKusuk.user.dto.UpdateProfileResponse;
@@ -54,10 +55,11 @@ public HttpResponse<UserJoinResponse> join(@Valid @RequestBody UserJoinRequest u
5455
@PatchMapping("/logout")
5556
@Operation(summary = "로그아웃", description = "현재 로그인한 사용자의 로그아웃을 요청하여 RfreshToken을 블랙처리 합니다.")
5657

57-
public HttpResponse<UserLogoutResponse> logout(HttpServletRequest request) {
58+
public HttpResponse<UserLogoutResponse> logout(@Valid @RequestBody LogoutRequest request) {
5859

5960
String username = userService.getUsernameBySecurityContext();
60-
String encryptedRefreshToken = jwtUtil.getRefreshToken(request);
61+
String refreshtoken = request.refreshtoken();
62+
String encryptedRefreshToken = jwtUtil.getRefreshToken(refreshtoken);
6163
String blacklist = userService.logout(encryptedRefreshToken);
6264

6365
return HttpResponse.okBuild(
@@ -83,7 +85,7 @@ public HttpResponse<FindPasswordResponse> findPassword(@Valid @RequestBody FindP
8385
@PostMapping("/check-password")
8486
@Operation(summary = "사용자 비밀번호 확인", description = "현재 로그인 한 사용자의 비밀번호를 확인합니다.")
8587
public HttpResponse<String> checkPassword(@Valid @RequestBody CheckPasswordRequest checkPasswordRequest) {
86-
userService.checkPassword(checkPasswordRequest.getPassword());
88+
userService.checkPassword(checkPasswordRequest.password());
8789

8890
return HttpResponse.okBuild("비밀번호가 일치합니다.");
8991

src/main/java/com/cona/KUsukKusuk/user/dto/CheckPasswordRequest.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
import lombok.Getter;
66
import lombok.Setter;
77

8-
@Getter
9-
@Setter
8+
109
public record CheckPasswordRequest(
1110
@NotBlank(message = "비밀번호를 입력해주세요.")
1211
@Schema(description = "사용자 비밀번호", nullable = false, example = "vdongv1620")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.cona.KUsukKusuk.user.dto;
2+
3+
import io.swagger.v3.oas.annotations.media.Schema;
4+
5+
public record LogoutRequest(
6+
@Schema(description = "리프레시 토큰을 보내면 AccessToken 재발급", nullable = false, example = "Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyaWQiOiJrb25rdWsiLCJwYXNzd29yZCI6IiQyYSQxMCQweno4bnl3aXZFN1ZnVURKeW5GOC9lV28yWGs2Q3hjZC9lTnBpNE4zT2VVTllvTUxqNHFULiIsImlhdCI6MTcxMDE3OTQyNCwiZXhwIjoxNzEwNzg0MjI0fQ.-3_E4vP0de7_6LW-5m2f5krG1ytHDH2gw30L0PX4NKU")
7+
String refreshtoken
8+
) {
9+
}

0 commit comments

Comments
 (0)