
청소할 시간
네이버, 카카오, 페이스북은 쉬운 로그인을 제공하기 위해 달려들었고, 카카오만이 테스트 중 로그인이 느렸다.
너무 느리다면 사용자는 어떻게 사용할까요? 더 로드해야 하나요?
결론은 개선할 수 있는 방법이 있었으니 정리해보겠습니다.
다시는 찾기싫고 머리가 안좋아서 기억력도 안좋고..
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
카카오 로그인 시 토큰 받는 속도가 느리고 다른 앱으로 전환되는 현상 발생
안녕하세요. 어제까지 휴가라서 답장이 늦었습니다. 용서. 답변에 따라 코드를 검토하고 수정하겠습니다.
devtalk.kakao.com

