kakao / kakao_flutter_sdk

Flutter SDK for Kakao Open API
Apache License 2.0
192 stars 71 forks source link

AuthController.handleOpenUrl(url: url) 호출 결과 false #124

Closed ska2519 closed 2 years ago

ska2519 commented 2 years ago

android는 카카오 로그인 시 앱 켜지고 정상 로그인이 되는데 iOS 에서 로그인 시 AppDelegate.swift에서 카카오톡 들어갔다 앱으로 돌아오지만 let result = AuthController.handleOpenUrl(url: url) result 값이 false로 들어옵니다.

url.scheme은 ${appKey}://oauth?code=3zKSdEe9tT1PzIYgGOYPgcg2gVcDVVIHpeT9-6pe3Wou80rFBzqDwOpqIFgENXY8pu0qNQo9dNsAAAF-0BgXgw 형태로 정상적으로 들어오는 것으로 보입니다.

기존에 정상적으로 동작하다가 어느 순간 부터 로그인이 안되어서 다시 확인중인데 어떻게 해결해야할지 감이 잘 안오네요;

참고로 에뮬레이터에서 실행 시에는 authCode: qSghN5adgiJYIwuDe1SrcZeyrJafwPuB4JfXROFYpwxxwcvNm6e19fsxhtBkT1XbBBFC7AopdSkAAAF-0FhkHg 를 웹사이트 로그인으로 잘 받아오고 있습니다.

AppDelegate.swift 파일

import UIKit
import Flutter
import NaverThirdPartyLogin
import KakaoSDKCommon
import KakaoSDKAuth
import KakaoSDKUser

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {

override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) → Bool {
  GeneratedPluginRegistrant.register(with: self)
  if #available(iOS 10.0, *) {
  UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
  }
  return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}

override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) → Bool {
  let scheme = url.scheme

  KakaoSDK.initSDK(appKey: ${appKey})
  if (scheme!.contains("kakao") && AuthApi.isKakaoTalkLoginUrl(url)) {
    print("AuthApi scheme:", scheme)
     let result =  AuthController.handleOpenUrl(url: url)
    print("result:", result)
     return result
  }
  return false
  }
}
mbkim95 commented 2 years ago

https://devtalk.kakao.com/t/flutter-authcontroller-handleopenurl-url-url-false/121058