@@ -5,6 +5,8 @@ import com.moa.common.oidc.OidcIdTokenValidator
55import com.moa.entity.Member
66import com.moa.entity.ProviderType
77import com.moa.repository.MemberRepository
8+ import com.moa.service.dto.AppleSignInUpRequest
9+ import com.moa.service.dto.AppleSignInUpResponse
810import com.moa.service.dto.KaKaoSignInUpRequest
911import com.moa.service.dto.KakaoSignInUpResponse
1012import org.springframework.stereotype.Service
@@ -48,4 +50,36 @@ class AuthService(
4850 registerToken,
4951 )
5052 }
53+
54+ @Transactional
55+ fun appleSignInUp (request : AppleSignInUpRequest ): AppleSignInUpResponse {
56+ val userInfo = oidcIdTokenValidator.validate(ProviderType .APPLE , request.idToken)
57+
58+ val member = memberRepository.findByProviderAndProviderSubject(
59+ provider = userInfo.provider,
60+ providerSubject = userInfo.subject,
61+ )
62+
63+ member?.let {
64+ return AppleSignInUpResponse (
65+ jwtTokenProvider.createAccessToken(member.id)
66+ )
67+ }
68+
69+ val registeredMember = memberRepository.save(
70+ Member (
71+ provider = ProviderType .APPLE ,
72+ providerSubject = userInfo.subject,
73+ profile = null ,
74+ )
75+ )
76+
77+ val registerToken = jwtTokenProvider.createAccessToken(
78+ registeredMember.id
79+ )
80+
81+ return AppleSignInUpResponse (
82+ registerToken,
83+ )
84+ }
5185}
0 commit comments