Skip to content

Commit 0f4a63c

Browse files
committed
fix: 토큰 에러 수정
1 parent cac82d2 commit 0f4a63c

File tree

1 file changed

+28
-13
lines changed

1 file changed

+28
-13
lines changed

src/main/java/com/example/log4u/common/oauth2/controller/OAuth2Controller.java

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,39 +30,54 @@ public ResponseEntity<?> reissue(
3030
HttpServletRequest request,
3131
HttpServletResponse response
3232
) {
33-
// 리프레시 토큰 추출
33+
// 쿠키가 없으면 바로 잘못된 요청 처리
34+
Cookie[] cookies = request.getCookies();
35+
if (cookies == null || cookies.length == 0) {
36+
return ResponseEntity
37+
.badRequest()
38+
.body("쿠키가 존재하지 않습니다.");
39+
}
40+
3441
String refresh = null;
3542
String access = null;
36-
Cookie[] cookies = request.getCookies();
43+
44+
// 쿠키에서 토큰 추출
3745
for (Cookie cookie : cookies) {
38-
if (cookie.getName().equals(TokenConstants.REFRESH_TOKEN)) {
46+
if (TokenConstants.REFRESH_TOKEN.equals(cookie.getName())) {
3947
refresh = cookie.getValue();
40-
}
41-
if (cookie.getName().equals(TokenConstants.ACCESS_TOKEN)) {
48+
} else if (TokenConstants.ACCESS_TOKEN.equals(cookie.getName())) {
4249
access = cookie.getValue();
4350
}
4451
}
4552

53+
// 리프레시 토큰이 없는 경우
4654
if (refresh == null) {
47-
// 리프레시 토큰이 없는 경우
48-
return new ResponseEntity<>("잘못된 요청입니다..", HttpStatus.BAD_REQUEST);
55+
return ResponseEntity
56+
.badRequest()
57+
.body("리프레시 토큰이 존재하지 않습니다.");
4958
}
5059

51-
// 리프레시 토큰 만료 체크
60+
// 리프레시 토큰 만료 여부 확인
5261
try {
5362
jwtUtil.isExpired(refresh);
5463
} catch (ExpiredJwtException e) {
55-
return new ResponseEntity<>("리프레시 토큰이 만료되었습니다.", HttpStatus.UNAUTHORIZED);
64+
return ResponseEntity
65+
.status(HttpStatus.UNAUTHORIZED)
66+
.body("리프레시 토큰이 만료되었습니다.");
5667
}
5768

58-
// 토큰이 refresh인지 확인 (발급시 페이로드에 명시)
69+
// 리프레시 토큰인지 타입 확인
5970
String category = jwtUtil.getTokenType(refresh);
60-
if (!category.equals(TokenConstants.REFRESH_TOKEN)) {
61-
return new ResponseEntity<>("잘못된 토큰입니다.", HttpStatus.BAD_REQUEST);
71+
if (!TokenConstants.REFRESH_TOKEN.equals(category)) {
72+
return ResponseEntity
73+
.badRequest()
74+
.body("리프레시 토큰이 아닙니다.");
6275
}
6376

77+
// 새 토큰 발급
6478
createNewTokens(response, access, refresh);
65-
return new ResponseEntity<>(HttpStatus.OK);
79+
80+
return ResponseEntity.ok().build();
6681
}
6782

6883
private void createNewTokens(HttpServletResponse response, String access, String refresh) {

0 commit comments

Comments
 (0)