Ios swift 카카오 간편 로그인 구현시 질문이 있습니다

현재 개발중인 앱에 회원가입과 로그인의 편의성을 위해서 카카오 간편 로그인 기능을 추가하였습니다.

카카오 로그인 버튼을 누르면 카카오 로그인을하고, 프로필에서 가져온 사용자 아이디(숫자 10자)를 받아오고, 해당 아이디를 DB에서 조회해서 이미 있는 아이디라면 로그인으로, 없다면 회원가입으로 페이지가 이동됩니다.

카카오 로그인 버튼을 터치하면

IMG_6754

위의 이미지처럼 팝업창이 뜨는데, 위에 버튼을 눌러서 카카오톡 앱에서 프로필 정보를 가져오려고 시도하면 값을 받아오지 못합니다. 여러번 반복해도 계속 프로필 정보를 받아오려는 팝업창이 뜨기만하고요.

IMG_6769

반면, 아래의 버튼을 눌러서 수동으로 카카오 이메일계정으로 로그인을 하고 프로필 정보 제공 동의를하면 제대로 값을 불러오네요.

IMG_6768

이러한 문제는 어디서 해결해야하는지 궁금합니다.

또, 스샷의 팝업을 띄우지않고

카카오 로그인 버튼을 누르면 바로 카카오톡 앱으로 넘어가서 회원 체크를 하도록 하려면 어떻게 해야하는지도 알려주시면 감사하겠습니다!

@xpxmfk0907

  1. [카카오톡으로 간편로그인] 안되는 증상

    => AppDelegate의 openUrl 구현이 빠진걸로 예상됩니다. 아래 예제처럼 구현이 되었는지 확인해주세요

    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        if KOSession.handleOpen(url) {
            return true
        }
        return false
    }
    
    // for iOS 9.0
    func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
        if KOSession.handleOpen(url) {
            return true
        }
        return false
    }
    
  2. [카카오톡 간편로그인] 바로 실행 방법

    => authType 파라미터를 KOAuthTypeTalk 하나만 입력해야 합니다.
    Talk만 지정한 경우 카톡이 설치된 경우 카카오톡 간편로그인을 바로 실행하며 미설치시는 웹뷰로 로그인 시도합니다.

    guard let session = KOSession.shared() else { return }
    session.open(completionHandler: { (error) in
        if let error = error as NSError?, error.code != KOErrorCancelled.rawValue {
            UIAlertController.showAlert(message: error.description)
        }
    }, authTypes: [NSNumber(value: KOAuthType.talk.rawValue)])
    
2개의 좋아요

감사합니다. 덕분에 두가지 문제점 모두 해결 완료했습니다!

2개의 좋아요