@@ -53,19 +53,15 @@ public void saveRefreshToken(Long userId, String refreshToken) {
5353 @ Override
5454 public TokenResponse refreshAccessToken (HttpServletRequest request ,
5555 HttpServletResponse response ) {
56-
57- // 1. Cookie에서 refreshToken 추출
5856 String refreshToken = extractRefreshToken (request );
5957
60- // 1-1. JWT 서명 검증 (DB 조회 전)
6158 Long jwtUserId ;
6259 try {
6360 jwtUserId = jwtProvider .getUserId (refreshToken , "refresh" );
6461 } catch (JwtException | IllegalArgumentException | CustomException e ) {
6562 throw new CustomException (ErrorCode .REFRESH_TOKEN_INVALID );
6663 }
6764
68- // 2. DB 조회
6965 RefreshToken savedToken = refreshTokenMapper .findByToken (refreshToken )
7066 .orElseThrow (() ->
7167 new CustomException (ErrorCode .REFRESH_TOKEN_INVALID )
@@ -75,10 +71,8 @@ public TokenResponse refreshAccessToken(HttpServletRequest request,
7571 throw new CustomException (ErrorCode .REFRESH_TOKEN_INVALID );
7672 }
7773
78- // 3. 만료 체크
7974 if (savedToken .getExpiresAt ().isBefore (Instant .now ())) {
80- // 만료된 토큰은 즉시 삭제 후 예외 반환 (rotation 로직 미진입)
81- refreshTokenMapper .deleteByToken (refreshToken ); // 만료 토큰 정리
75+ refreshTokenMapper .deleteByToken (refreshToken );
8276 throw new CustomException (ErrorCode .REFRESH_TOKEN_EXPIRED );
8377 }
8478
@@ -88,30 +82,21 @@ public TokenResponse refreshAccessToken(HttpServletRequest request,
8882 throw new CustomException (ErrorCode .REFRESH_TOKEN_INVALID );
8983 }
9084
91- // 4. 기존 refreshToken 폐기 (Rotation 로직 진입)
9285 int deletedCount = refreshTokenMapper .deleteByToken (refreshToken );
9386 if (deletedCount == 0 ) {
9487 throw new CustomException (ErrorCode .REFRESH_TOKEN_INVALID );
9588 }
9689
97- // 5. 새 Access + Refresh 발급
9890 TokenResponse accessToken = jwtIssuer .issueAccessToken (userId );
99-
100- // 6. 새 refreshToken 발급
10191 String newRefreshToken = jwtIssuer .issueRefreshToken (userId );
102-
103- // 7. DB 저장
10492 saveRefreshToken (userId , newRefreshToken );
105-
106- // 8. 새 refreshToken 쿠키 설정
10793 response .addCookie (CookieUtils .createRefreshTokenCookie (
10894 newRefreshToken ,
10995 jwtProperties .refreshExpirationSeconds (),
11096 cookieSecure
11197 )
11298 );
11399
114- // 9. accessToken만 반환
115100 return accessToken ;
116101 }
117102
0 commit comments