-
카카오 간편 로그인 속도 개선Language/iOS,AOS 2023. 3. 6. 23:55
정리하게된 계기
급하게 네이버, 카카오, 페이스북 간편로그인을 붙히고 테스트 진행중에 유독 카카오만 너무 느리게 로그인이 되었다.
이렇게 느리면 사용자가 어떻게 쓰지..?? 로딩을 더 걸어 줘야 하나??
결론은 개선 방법이 있었어서 정리해 둔다.
다시 찾기도 싫고 머리가 나빠서 기억도 몬한다..
SceneDelegate 문제의 코드
if let url = URLContexts.first?.url { if (AuthApi.isKakaoTalkLoginUrl(url)) { // MARK: 카카오 로그인 _ = AuthController.handleOpenUrl(url: url) } } // MARK: 네이버 로그인 let instance = NaverThirdPartyLoginConnection.getSharedInstance() instance?.isNaverAppOauthEnable = true // 네이버 앱으로 인증 방식 활성화 instance?.isInAppOauthEnable = true // SafariViewController로 인증 방식 활성화 instance?.isOnlyPortraitSupportedInIphone() // 아이폰에서 인증 화면을 세로모드에서만 적용 // 네이버 로그인 화면이 새로 등장 -> 토큰을 요청하는 코드 let result = NaverThirdPartyLoginConnection.getSharedInstance().receiveAccessToken(URLContexts.first?.url) if result == CANCELBYUSER { Utils.Log("result : \(result)") }
SceneDelegate 수정된 코드
카카오 로그인 시에 네이버 코드가 밖으로 빠져 나와 있으면 서로 영향을 주는 액션이 발생하는듯 하다.
자세한 내용이 궁금하시면 검색 ㄱㄱ 할게 많아서 자세히 정리까지는 못하겠다.. 결론만!
... class SceneDelegate: UIResponder, UIWindowSceneDelegate { ... // MARK: 카카오, 네이버, 페이스북 로그인 func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { if URLContexts.first?.url.scheme == "test", let url = URLContexts.first?.url { AppInfo.shared.uriSchemeURL = url.absoluteString.replacingOccurrences(of: "test://", with: "https://") NotificationCenter.default.post(name: Notification.Name("didReceiveUriSchemeURL"), object: nil) } else if let url = URLContexts.first?.url { if (AuthApi.isKakaoTalkLoginUrl(url)) { // MARK: 카카오 로그인 _ = AuthController.handleOpenUrl(url: url) } else { // MARK: 네이버 로그인 let instance = NaverThirdPartyLoginConnection.getSharedInstance() instance?.isNaverAppOauthEnable = true // 네이버 앱으로 인증 방식 활성화 instance?.isInAppOauthEnable = true // SafariViewController로 인증 방식 활성화 instance?.isOnlyPortraitSupportedInIphone() // 아이폰에서 인증 화면을 세로모드에서만 적용 // 네이버 로그인 화면이 새로 등장 -> 토큰을 요청하는 코드 let result = NaverThirdPartyLoginConnection.getSharedInstance().receiveAccessToken(URLContexts.first?.url) if result == CANCELBYUSER { Utils.Log("result : \(result)") } } } } // Universal Link (앱 실행중) func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { ... } }
참조
https://devtalk.kakao.com/t/topic/126696/22?page=2
'Language > iOS,AOS' 카테고리의 다른 글
Development로 Archive해서 ipa 파일 다운로드 (0) 2023.03.07 plist 파일 분리를 통한 빌드 환경 분리하기 (0) 2023.03.07 URI 스킴 적용 (URL Scheme) (0) 2023.03.06 Universal link 적용하기 (0) 2023.03.02 iOS 푸시 랜딩 (active, inactive, background) (0) 2023.03.01