@@ -17,7 +17,8 @@ import org.springframework.stereotype.Service
17
17
@Service
18
18
class CustomOauth2UserService (
19
19
private val userRepository : UserRepository ,
20
- private val jwtTokenProvider : JwtTokenProvider
20
+ private val jwtTokenProvider : JwtTokenProvider ,
21
+ private val googleOauthUserService : GoogleOauthUserService
21
22
) : DefaultOAuth2UserService() {
22
23
23
24
override fun loadUser (userRequest : OAuth2UserRequest ): OAuth2User {
@@ -30,23 +31,16 @@ class CustomOauth2UserService(
30
31
else -> throw OAuth2AuthenticationException (" 지원하지 않는 provider: $provider " )
31
32
}
32
33
33
- val providerId = oAuth2UserInfo.getProviderId()
34
- val loginId = " $provider$providerId "
35
- val email = oAuth2UserInfo.getEmail()
36
- val name = oAuth2UserInfo.getName()
34
+ val loginId = " ${provider}${oAuth2UserInfo.getProviderId()} "
37
35
38
36
39
- val user = userRepository.findByLoginId(loginId) ? : run {
40
- User (
41
- loginId = loginId,
42
- email = email,
43
- password = " " , // OAuth는 비밀번호가 필요 없음
44
- name = name,
45
- provider = provider,
46
- providerId = providerId,
47
- role = UserRole .USER
48
- ).also { userRepository.save(it) }
49
- }
37
+ val user = googleOauthUserService.findOrCreateOAuthUser(
38
+ loginId = loginId,
39
+ email = oAuth2UserInfo.getEmail(),
40
+ name = oAuth2UserInfo.getName(),
41
+ provider = provider,
42
+ providerId = oAuth2UserInfo.getProviderId()
43
+ )
50
44
51
45
52
46
val tokenResponse: TokenResponse = jwtTokenProvider.generateToken(loginId)
0 commit comments