Kakao_flutter_sdk 로그인 오류

안녕하세요 현재 플러터 kakao_flutter_sdk로 카카오 로그인을 구현하고 있습니다.

앱이 설치되지 않은 경우엔 카카오 링크를 통해 로그인이 잘 되는데 앱이 설치되어 있는 경우에
카톡앱이 켜지기는 하는데 정상적이라면 동의 화면이 뜨고 확인을 해야 다시 개발중인 앱으로 돌아와야 하는데
지금은 카톡앱 갔다가 아무것도 없이 바로 다시 개발중인 앱으로 돌아옵니다…

현재 네이버 로그인도 같이 사용중이라 AppDelegate에

override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) → Bool {
return NaverThirdPartyLoginConnection.getSharedInstance().application(app, open: url, options: options)
}

를 추가했는데, 이때문이라는 레퍼런스도 봐서 해결이라고 올라온 걸로 바꿔도 여전합니다 ㅠ 물론 저부분을 지워도 똑같구요 …

info.plist에 추가해야 하는 부분들은 다 추가한 상태입니다.

앱 ID는 710905입니다.

답변 부탁드립니다 ㅠㅠ

안녕하세요

서버 로그를 확인했을 때는 토큰이 정상적으로 발급되고 있네요

네이버 로그인에 대한 얘기를 해주셔서 혹시 아래의 내용들을 읽으셨던건가요?

네 맞습니다.

토큰이 잘 발급되고 있군요 …ㅜ
근데 로그 찍히는 것도 없고 카톡을 갔다가 1초만에 다시 앱으로 슝 오네요 ㅠㅠ

다시 한 번 말씀드리지만 앱 설치 안 된 경우 카카오링크를 통해서는 아주 잘 옵니다 토큰도 잘 받아지구요 !

혹시 앱 설치라는 것은 카카오톡 앱을 의미하고, 카카오링크라고 말씀하신 내용은 '카카오 계정으로 로그인’을 말씀하시는 건가요?

카카오링크 기능은 로그인과는 별개의 기능이라서, 카카오링크를 통해 로그인한다는 내용이 잘 이해가 안가네요ㅠㅠ

추가로 info.plist 설정 내용 첨부 부탁드려요 (앱 키는 가려서 올려주세요)

넵 앱 설치는 AuthCodeClient.instance.requestWithTalk();을 말씀드리는 것이고
카카오 링크는 AuthCodeClient.instance.request();을 말씀드리는 것입니다 !!

스크린샷 2022-03-21 오전 10.12.45

AppDelegate.swift 파일도 첨부가 가능하실까요?

import UIKit
import Flutter
import NaverThirdPartyLogin

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {

  override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
      return NaverThirdPartyLoginConnection.getSharedInstance().application(app, open: url, options: options)
  }

  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

전문입니다!

override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
      return NaverThirdPartyLoginConnection.getSharedInstance().application(app, open: url, options: options)
  }

위의 코드로 인해 카카오톡 로그인에 사용되는 Url이 네이버 로그인에서 처리되고 있는 것으로 보입니다. AppDelegate.swift 파일을 아래와 같이 수정 후 다시 확인 부탁드려요

import UIKit
import Flutter
import NaverThirdPartyLogin

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {

  override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
      var result = false

     if url.absoluteString.hasPrefix("kakao") {
         result = super.application(app, open: url, options: options)
     }

     if !result {
         result = NaverThirdPartyLoginConnection.getSharedInstance()?.application(app, open: url, options: options)
     }
     return result
  }

  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

해결되었습니다 !!! 감사합니다

1개의 좋아요