2323import org .morib .server .global .jwt .JwtService ;
2424import org .morib .server .global .message .ErrorMessage ;
2525import org .morib .server .global .oauth2 .CustomOAuth2User ;
26+ import org .morib .server .global .oauth2 .apple .dto .AppleUserInfoDto ;
2627import org .morib .server .global .oauth2 .userinfo .AppleOAuth2UserInfo ;
2728import org .springframework .security .core .Authentication ;
2829import org .springframework .security .oauth2 .client .OAuth2AuthorizedClient ;
@@ -74,7 +75,12 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
7475
7576 String encodedStateFromRequest = request .getParameter (OAuth2ParameterNames .STATE );
7677 String user = request .getParameter ("user" );
77- ObjectMapper objectMapper1 = new ObjectMapper ();
78+ String fullName = null ;
79+ if (Objects .nonNull (user )) {
80+ AppleUserInfoDto appleUserInfoDto = objectMapper .readValue (user , AppleUserInfoDto .class );
81+ fullName = AppleUserInfoDto .fullName (appleUserInfoDto );
82+ }
83+
7884
7985 Enumeration <String > parameterNames = request .getParameterNames ();
8086 log .info ("=== OAUTH2 CALLBACK RECEIVED ===" );
@@ -85,9 +91,6 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
8591 log .info ("State from request (Apple 반환값): {}" , encodedStateFromRequest );
8692 log .info ("Code from Apple {}" , parameterNames .nextElement ());
8793
88- parameterNames .asIterator ().forEachRemaining (clone -> log .info ("now parameterName was this {}" , clone ));
89-
90-
9194 log .info ("State length: {}" , encodedStateFromRequest != null ? encodedStateFromRequest .length () : "null" );
9295 log .info ("All parameters: {}" , request .getParameterMap ());
9396
@@ -97,11 +100,6 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
97100 byte [] decoded = Base64 .getUrlDecoder ().decode (encodedStateFromRequest );
98101 String decodedString = new String (decoded , StandardCharsets .UTF_8 );
99102 log .info ("Decoded state: {}" , decodedString );
100- if (decodedString .startsWith ("{" )) {
101- log .info ("✅ Apple이 우리의 encodedState를 그대로 반환함" );
102- } else {
103- log .info ("❌ Apple이 원본 state를 반환함 - 이게 문제!" );
104- }
105103 } catch (Exception e ) {
106104 log .info ("❌ State 디코딩 실패 - 원본 state일 가능성 높음: {}" , e .getMessage ());
107105 }
@@ -142,7 +140,7 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
142140 findUser .authorizeUser ();
143141 }
144142 // 아니면 로그인으로 바로 직행
145- loginSuccess (response , oAuth2User , findUser .isOnboardingCompleted (), clientType );
143+ loginSuccess (response , oAuth2User , findUser .isOnboardingCompleted (), clientType , fullName );
146144
147145 } catch (Exception e ) {
148146 log .error ("OAuth2 authentication processing failed" , e );
@@ -153,7 +151,8 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
153151 }
154152 }
155153
156- private void loginSuccess (HttpServletResponse response , CustomOAuth2User oAuth2User , boolean isOnboardingCompleted , String clientType ) throws IOException {
154+ private void loginSuccess (HttpServletResponse response , CustomOAuth2User oAuth2User ,
155+ boolean isOnboardingCompleted , String clientType , String fullName ) throws IOException {
157156 log .info ("login success 진입" );
158157 String accessToken = jwtService .createAccessToken (oAuth2User .getUserId ());
159158 String refreshToken = jwtService .createRefreshToken ();
@@ -164,6 +163,7 @@ private void loginSuccess(HttpServletResponse response, CustomOAuth2User oAuth2U
164163 log .info ("now socialRefreshToken {}" , socialRefreshToken );
165164 //userManager.updateSocialRefreshToken(user, socialRefreshToken);
166165 userManager .updateSocialRefreshToken (user , socialRefreshToken );
166+ userManager .updateUserName (user , fullName );
167167
168168 String targetRedirectUri ;
169169 if ("electron" .equalsIgnoreCase (clientType )) {
0 commit comments