Skip to content

Commit bdea8c2

Browse files
committed
Oauth2 PENDING 상태인 경우 리프레시 토큰은 발급하고 이동시키도록 수정
1 parent 8a67dd6 commit bdea8c2

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

src/main/java/org/myteam/server/oauth2/handler/CustomOauth2SuccessHandler.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,26 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
5454
String role = auth.getAuthority();
5555
String status = customUserDetails.getStatus().name();
5656

57+
log.info("onAuthenticationSuccess email: {}", email);
58+
log.info("onAuthenticationSuccess role: {}", role);
59+
//유저확인
60+
Member member = memberJpaRepository.findByEmail(email)
61+
.orElseThrow(() -> new RuntimeException("Member not found"));
62+
log.info("onAuthenticationSuccess publicId: {}", member.getPublicId());
63+
log.info("onAuthenticationSuccess role: {}", member.getRole());
64+
65+
5766
if (status.equals(PENDING.name())) {
5867
log.warn("PENDING 상태인 경우 로그인이 불가능합니다");
5968
// sendErrorResponse(response, HttpStatus.FORBIDDEN, "PENDING 상태인 경우 로그인이 불가능합니다");
69+
// X-Refresh-Token
70+
String refreshToken = jwtProvider.generateToken(TOKEN_CATEGORY_REFRESH, Duration.ofDays(7), member.getPublicId(), member.getRole().name(), member.getStatus().name());
71+
String cookieValue = URLEncoder.encode("Bearer " + refreshToken, StandardCharsets.UTF_8);
72+
73+
// redirect 순간 Header 값 날아감
74+
// response.addHeader(ACCESS_TOKEN_KEY, "Bearer " + accessToken);
75+
response.addCookie(createCookie(REFRESH_TOKEN_KEY, cookieValue, TOKEN_REISSUE_PATH, 24 * 60 * 60, true));
76+
response.addCookie(createCookie(REFRESH_TOKEN_KEY, cookieValue, LOGOUT_PATH, 24 * 60 * 60, true));
6077
response.sendRedirect(frontUrl + "?status=" + status);
6178
return;
6279
} else if (status.equals(INACTIVE.name())) {
@@ -71,13 +88,6 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
7188
return;
7289
}
7390

74-
log.info("onAuthenticationSuccess email: {}", email);
75-
log.info("onAuthenticationSuccess role: {}", role);
76-
//유저확인
77-
Member member = memberJpaRepository.findByEmail(email)
78-
.orElseThrow(() -> new RuntimeException("Member not found"));
79-
log.info("onAuthenticationSuccess publicId: {}", member.getPublicId());
80-
log.info("onAuthenticationSuccess role: {}", member.getRole());
8191
// Authorization
8292
String accessToken = jwtProvider.generateToken(TOKEN_CATEGORY_ACCESS, Duration.ofHours(1), member.getPublicId(), member.getRole().name(), member.getStatus().name());
8393
// X-Refresh-Token

0 commit comments

Comments
 (0)