Skip to content

Commit 7527b97

Browse files
committed
feat: user last, first name 조합하여 회원가입 진행!
1 parent 8bee902 commit 7527b97

File tree

5 files changed

+56
-11
lines changed

5 files changed

+56
-11
lines changed

morib/src/main/java/org/morib/server/domain/user/UserManager.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
package org.morib.server.domain.user;
22

3+
import java.util.Objects;
4+
35
import org.morib.server.annotation.Manager;
46
import org.morib.server.domain.user.application.dto.UpdateUserProfileServiceDto;
57
import org.morib.server.domain.user.infra.User;
68
import org.morib.server.domain.user.infra.type.InterestArea;
79

10+
import lombok.extern.slf4j.Slf4j;
11+
12+
@Slf4j
813
@Manager
914
public class UserManager {
1015

@@ -27,4 +32,14 @@ public void updateUserInterestArea(User findUser, String interestArea) {
2732
public void completeOnboarding(User findUser) {
2833
findUser.completeOnboarding();
2934
}
35+
36+
37+
public void updateUserName(User findUser, String fullName) {
38+
if(Objects.isNull(fullName) || findUser.isOnboardingCompleted()){
39+
log.info("Full name is null or is already onboarding");
40+
return;
41+
}
42+
log.info("Full name was {}", fullName);
43+
findUser.updateUserName(fullName);
44+
}
3045
}

morib/src/main/java/org/morib/server/domain/user/infra/User.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,4 +93,8 @@ public void updateUserInterestArea(InterestArea interestArea) {
9393
public void completeOnboarding() {
9494
this.isOnboardingCompleted = true;
9595
}
96+
97+
public void updateUserName(String fullName) {
98+
this.name = fullName;
99+
}
96100
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.morib.server.global.oauth2.apple.dto;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Getter;
5+
6+
@Getter
7+
@AllArgsConstructor
8+
public class AppleResponseName {
9+
private String firstName;
10+
private String lastName;
11+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.morib.server.global.oauth2.apple.dto;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Getter;
5+
6+
@Getter
7+
@AllArgsConstructor
8+
public class AppleUserInfoDto {
9+
private AppleResponseName name;
10+
private String email;
11+
12+
public static String fullName(AppleUserInfoDto dto) {
13+
return dto.getName().getLastName() + dto.getName().getFirstName();
14+
}
15+
}

morib/src/main/java/org/morib/server/global/oauth2/handler/OAuth2LoginSuccessHandler.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.morib.server.global.jwt.JwtService;
2424
import org.morib.server.global.message.ErrorMessage;
2525
import org.morib.server.global.oauth2.CustomOAuth2User;
26+
import org.morib.server.global.oauth2.apple.dto.AppleUserInfoDto;
2627
import org.morib.server.global.oauth2.userinfo.AppleOAuth2UserInfo;
2728
import org.springframework.security.core.Authentication;
2829
import 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

Comments
 (0)