셋팅을 모두 하고 커스텀 로그인 버튼을 만들어서 사용 중입니다.
카카오 로그인 버튼을 누르면 “카카오톡으로 간편로그인” , “다른 카카오계정으로 로그인” 두
메뉴가 나옵니다(스토리는 필요없어서 삭제했습니다.)
이 중 카카오톡으로 간편로그인을 누르면 카카오톡으로 넘어가서 로그인 처리는 되지만
동의 창이 중간에 나오질 않습니다. 그냥 화면만 잠깐 카톡으로 넘어갔다가 오는 것 같아요.
제가 샘플보고 작성한 소스입니다.
AppDelegate.swift
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
if KOSession.handleOpen(url) {
return true
}
return FBSDKApplicationDelegate.sharedInstance().application(app, open: url as URL!, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
if KOSession.handleOpen(url) {
return true
}
return false
}
func applicationDidEnterBackground(_ application: UIApplication) {
KOSession.handleDidEnterBackground()
}
func applicationDidBecomeActive(_ application: UIApplication) {
KOSession.handleDidBecomeActive()
}
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
print("didFailToRegisterForRemoteNotificationsWithError=\(error)")
}
login.swift
@IBAction func kakaoLoginBtn(_ sender: Any) {
let session :KOSession = KOSession.shared()
if session.isOpen() {
session.close()
}
session.presentingViewController = self
session.open(completionHandler: {(error) -> Void in
if error != nil {
print(error?.localizedDescription ?? "")
}else if session.isOpen() {
KOSessionTask.userMeTask { [weak self] (error, me) in
if let error = error as NSError? {
UIAlertController.showMessage(error.description)
} else if let me = me as KOUserMe? {
print("account : \(me.account)") //로그인후 계정 정보 확인
}
}
} else {
print("isNotOpen")
}
})
}