@@ -72,34 +72,6 @@ public AuthRes signUp(final SignUpReq signUpReq) {
72
72
return getUserAuthRes (newUser );
73
73
}
74
74
75
- @ Transactional
76
- public AuthRes appleSignUp (AppleSignUpReq appleSignUpReq ) {
77
- Claims claims = appleJwtUtils .getClaimsBy (appleSignUpReq .getIdentityToken ());
78
- String providerId = claims .get ("sub" ).toString ();
79
-
80
- if (userRepository .existsByProviderId (providerId )) {
81
- throw new AlreadyExistsProviderIdException ();
82
- }
83
-
84
- String appleRefreshToken = appleJwtUtils .getAppleToken (appleSignUpReq .getAuthorizationCode ());
85
- AppleToken appleTokenReq = AppleToken .builder ()
86
- .providerId (providerId )
87
- .refreshToken (appleRefreshToken )
88
- .build ();
89
- appleTokenRepository .save (appleTokenReq );
90
-
91
- User newUser = User .builder ()
92
- .providerId (providerId )
93
- .provider (Provider .APPLE )
94
- .email (appleSignUpReq .getEmail ())
95
- .password (passwordEncoder .encode (providerId ))
96
- .role (Role .USER )
97
- .build ();
98
- userRepository .save (newUser );
99
-
100
- return getUserAuthRes (newUser );
101
- }
102
-
103
75
@ Transactional
104
76
public AuthRes signIn (final SignInReq signInReq ) {
105
77
User user = userRepository .findByEmailAndStatus (signInReq .getEmail (), Status .ACTIVE )
@@ -116,7 +88,29 @@ public AuthRes appleSignIn(AppleSignInReq appleSignInReq) {
116
88
Claims claims = appleJwtUtils .getClaimsBy (appleSignInReq .getIdentityToken ());
117
89
String providerId = claims .get ("sub" ).toString ();
118
90
119
- User user = userRepository .findByProviderId (providerId ).orElseThrow (InvalidProviderIdException ::new );
91
+ Optional <User > optionalUser = userRepository .findByProviderId (providerId );
92
+
93
+ if (optionalUser .isEmpty ()) {
94
+ String appleRefreshToken = appleJwtUtils .getAppleToken (appleSignInReq .getAuthorizationCode ());
95
+ AppleToken appleTokenReq = AppleToken .builder ()
96
+ .providerId (providerId )
97
+ .refreshToken (appleRefreshToken )
98
+ .build ();
99
+ appleTokenRepository .save (appleTokenReq );
100
+
101
+ User newUser = User .builder ()
102
+ .providerId (providerId )
103
+ .provider (Provider .APPLE )
104
+ .password (passwordEncoder .encode (providerId ))
105
+ .role (Role .USER )
106
+ .build ();
107
+ userRepository .save (newUser );
108
+
109
+ optionalUser = Optional .of (newUser );
110
+ }
111
+
112
+ User user = optionalUser .get ();
113
+
120
114
if (user .getName () == null || user .getPhoneNumber () == null || user .getAge () == null || user .getGender () == null ) {
121
115
throw new UnRegisteredUserException ();
122
116
}
0 commit comments