Skip to content

Commit 74c8174

Browse files
committed
feat: JWT 필터 Access Token 검증하도록 변경 (#4)
1 parent 184521c commit 74c8174

File tree

1 file changed

+7
-21
lines changed

1 file changed

+7
-21
lines changed

src/main/java/com/project/mapdagu/jwt/filter/JwtAuthenticationProcessingFilter.java

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -46,29 +46,15 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
4646
return;
4747
}
4848

49-
// 사용자 요청 헤더에서 RefreshToken 추출-> RefreshToken이 없거나 유효하지 않다면 null
50-
String refreshToken = jwtService.extractRefreshToken(request)
51-
.filter(jwtService::isTokenValid)
52-
.orElse(null);
53-
54-
// 리프레시 토큰이 요청 헤더에 존재하고 유효하다면, AccessToken이 만료된 것 -> AccessToken 재발급
55-
if (refreshToken != null) {
56-
String email = jwtService.extractEmail(refreshToken).orElseThrow(() -> new TokenException(ErrorCode.INVALID_TOKEN));
57-
if (isRefreshTokenMatch(email, refreshToken)) {
58-
String newAccessToken = jwtService.createAccessToken(email);
59-
String newRefreshToken = jwtService.createRefreshToken(email);
60-
jwtService.updateRefreshToken(email, newRefreshToken);
61-
jwtService.sendAccessAndRefreshToken(response, newAccessToken, refreshToken);
62-
}
63-
return;
64-
}
49+
log.info("JwtAuthenticationProcessingFilter 호출");
50+
String accessToken = jwtService.extractAccessToken(request).orElse(null);
6551

66-
// AccessToken을 검사하고 인증 처리
67-
// AccessToken이 없거나 유효하지 않다면, 인증 객체가 담기지 않은 상태로 다음 필터로 넘어가기 때문에 403 에러 발생
68-
// AccessToken이 유효하다면, 인증 객체가 담긴 상태로 다음 필터로 넘어가기 때문에 인증 성공
69-
else {
70-
checkAccessTokenAndAuthentication(request, response, filterChain);
52+
if (jwtService.isTokenValid(accessToken)) {
53+
jwtService.extractEmail(accessToken)
54+
.ifPresent(email -> memberRepository.findByEmail(email)
55+
.ifPresent(this::saveAuthentication));
7156
}
57+
filterChain.doFilter(request, response);
7258
}
7359

7460
public boolean isRefreshTokenMatch(String email, String refreshToken) {

0 commit comments

Comments
 (0)