Skip to content

Commit d1ec147

Browse files
committed
✨ [feat] 카카오앱이 없을경우 사파리서 카카오 로그인 시도할 수 있게 수정
1 parent 85a5e3e commit d1ec147

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

Fitfty/Projects/Core/Sources/SocialLoginManager.swift

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
loginWithKakaoAccount(completionHandler: completionHandler,
35+
failedHandler: failedHandler)
36+
} else {
37+
loginWithKakaoTalk(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 {
43-
failedHandler(SocialLoginError.loginFail)
55+
failedHandler(SocialLoginError.noKakaoAvailable)
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.noKakaoAvailable)
70+
}
71+
}
5072
}
5173

5274
private func requestKakaoLogin(_ accessToken: String,

0 commit comments

Comments
 (0)