From 6fa24e93bfe4eba6edee6ccc11e99ef24fe71859 Mon Sep 17 00:00:00 2001 From: JONGTAE02 Date: Wed, 3 Dec 2025 20:11:27 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20GitHub=20OAuth2=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=ED=9B=84=EC=B2=98=EB=A6=AC=20=ED=94=8C=EB=A1=9C?= =?UTF-8?q?=EC=9A=B0=20=EC=99=84=EC=84=B1=20=EB=B0=8F=20=ED=94=84=EB=A1=A0?= =?UTF-8?q?=ED=8A=B8=EC=97=94=EB=93=9C=20=EB=9D=BC=EC=9A=B0=ED=8C=85=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/handler/OAuth2SuccessHandler.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/example/skillboost/auth/handler/OAuth2SuccessHandler.java b/src/main/java/com/example/skillboost/auth/handler/OAuth2SuccessHandler.java index 65ecb17..0155bae 100644 --- a/src/main/java/com/example/skillboost/auth/handler/OAuth2SuccessHandler.java +++ b/src/main/java/com/example/skillboost/auth/handler/OAuth2SuccessHandler.java @@ -1,10 +1,8 @@ package com.example.skillboost.auth.handler; - import com.example.skillboost.auth.JwtProvider; import com.example.skillboost.auth.service.TokenService; import com.example.skillboost.domain.User; import com.example.skillboost.repository.UserRepository; -import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; @@ -16,7 +14,6 @@ import org.springframework.web.util.UriComponentsBuilder; import java.io.IOException; -import java.util.HashMap; import java.util.Map; @Slf4j @@ -27,7 +24,11 @@ public class OAuth2SuccessHandler implements AuthenticationSuccessHandler { private final JwtProvider jwtProvider; private final UserRepository userRepository; private final TokenService tokenService; - private final ObjectMapper objectMapper = new ObjectMapper(); + + private static final String FRONTEND_REDIRECT_BASE_URL = "https://www.skill-boost.store"; + private static final String FRONTEND_TOKEN_HANDLER_PATH = "/oauth2/redirect"; + + @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, @@ -37,10 +38,11 @@ public void onAuthenticationSuccess(HttpServletRequest request, OAuth2User oAuth2User = (OAuth2User) authentication.getPrincipal(); Map attributes = oAuth2User.getAttributes(); + String email = (String) attributes.get("email"); + String githubId = String.valueOf(attributes.get("id")); if (email == null || email.isEmpty()) { - String githubId = String.valueOf(attributes.get("id")); email = githubId + "@github.temp"; log.warn("이메일 비공개 사용자 - 임시 이메일 사용: {}", email); } @@ -60,13 +62,12 @@ public void onAuthenticationSuccess(HttpServletRequest request, log.info("JWT 토큰 생성 및 Redis 저장 완료: {}", user.getEmail()); - // JSON 응답 대신 리다이렉트를 수행하는 로직 - - String frontendRedirectBaseUrl = "https://www.skill-boost.store"; - String frontendTokenHandlerPath = "/oauth2/redirect"; - String targetUrl = UriComponentsBuilder.fromUriString(frontendRedirectBaseUrl + frontendTokenHandlerPath) + String targetUrl = UriComponentsBuilder + .fromUriString(FRONTEND_REDIRECT_BASE_URL + FRONTEND_TOKEN_HANDLER_PATH) .queryParam("accessToken", accessToken) .queryParam("refreshToken", refreshToken) + .queryParam("email", user.getEmail()) + .queryParam("username", user.getUsername()) .build().toUriString(); response.sendRedirect(targetUrl);