@@ -30,23 +30,45 @@ final public class SocialLoginManager: NSObject {
3030
3131 public func tryKakaoLogin( completionHandler: @escaping ( Bool ) -> Void ,
3232 failedHandler: @escaping ( Error ) -> Void ) {
33- guard isKakaoLoginAvailable ( ) else {
34- failedHandler ( SocialLoginError . loginFail)
35- return
33+ if isKakaoLoginAvailable ( ) {
34+ loginWithKakaoTalk ( completionHandler: completionHandler,
35+ failedHandler: failedHandler)
36+ } else {
37+ loginWithKakaoAccount ( completionHandler: completionHandler,
38+ failedHandler: failedHandler)
3639 }
37-
40+ }
41+
42+ public func initailizeKakaoLoginSDK( ) {
43+ KakaoSDK . initSDK ( appKey: APIKey . kakaoAppKeyForLogin)
44+ }
45+
46+ private func loginWithKakaoTalk( completionHandler: @escaping ( Bool ) -> Void ,
47+ failedHandler: @escaping ( Error ) -> Void ) {
3848 UserApi . shared. loginWithKakaoTalk { [ weak self] ( oauthToken, _) in
3949 if let accessToken = oauthToken? . accessToken {
4050 self ? . saveKakaoUserInfo ( )
41- self ? . requestKakaoLogin ( accessToken, completionHandler: completionHandler, failedHandler: failedHandler)
51+ self ? . requestKakaoLogin ( accessToken,
52+ completionHandler: completionHandler,
53+ failedHandler: failedHandler)
4254 } else {
4355 failedHandler ( SocialLoginError . loginFail)
4456 }
4557 }
4658 }
4759
48- public func initailizeKakaoLoginSDK( ) {
49- KakaoSDK . initSDK ( appKey: APIKey . kakaoAppKeyForLogin)
60+ private func loginWithKakaoAccount( completionHandler: @escaping ( Bool ) -> Void ,
61+ failedHandler: @escaping ( Error ) -> Void ) {
62+ UserApi . shared. loginWithKakaoAccount { [ weak self] ( oauthToken, _) in
63+ if let accessToken = oauthToken? . accessToken {
64+ self ? . saveKakaoUserInfo ( )
65+ self ? . requestKakaoLogin ( accessToken,
66+ completionHandler: completionHandler,
67+ failedHandler: failedHandler)
68+ } else {
69+ failedHandler ( SocialLoginError . loginFail)
70+ }
71+ }
5072 }
5173
5274 private func requestKakaoLogin( _ accessToken: String ,
@@ -192,11 +214,6 @@ extension ASAuthorizationController: ASAuthorizationControllerDelegate {
192214 break
193215 }
194216
195- guard hasEmail ( email: email) else {
196- failedHandler ? ( SocialLoginError . noEmail)
197- return
198- }
199-
200217 let request = AppleLoginRequest ( userIdentifier: userIdentifier,
201218 userName: fullName,
202219 userEmail: email,
@@ -205,7 +222,7 @@ extension ASAuthorizationController: ASAuthorizationControllerDelegate {
205222 }
206223
207224 public func authorizationController( controller: ASAuthorizationController , didCompleteWithError error: Error ) {
208- failedHandler ? ( error )
225+ failedHandler ? ( SocialLoginError . loginFail )
209226 }
210227}
211228
0 commit comments