iOS/Setting

Kakao Login

Hamp 2025. 7. 1. 21:53
반응형

🏁 학습할 내용

  • 세팅
    • 패키지 설치
    • info.plist
    • URL Scheme 등록
  • 초기화

⚙️ 세팅

📦 패키지 설치

외부 의존성으로는 Alamofire가 있다.

https://github.com/kakao/kakao-ios-sdk

📋 Info.plist

<key>LSApplicationQueriesSchemes</key>
  <array>
      <!-- 카카오톡으로 로그인 -->
      <string>kakaokompassauth</string>
      <!-- 카카오톡 공유 -->
      <string>kakaolink</string>
      <!-- 카카오톡 채널 -->
      <string>kakaoplus</string>
  </array>

📝 URL Scheme 등록

로그인 이후 복귀를 위한 URL Scheme을 Target의 Info - URL Types에 등록해준다.

 

Identifer는 고유한 값을 , URL Schemes에는 위 kakao${NATIVE_APP_KEY}을 넣어준다.

NATIVE_APP_KEY 값은 MyApplication > App Keys 에서 확인할 수 있다.


⌨️ 코드

🏃 초기화

App Root의 생성자에서 NATIVE_APP_KET를 초기화 해준 후, onOpenURL을 통해 핸들링한다.

import SwiftUI
import KakaoSDKCommon
import KakaoSDKAuth
...

@main
struct SwiftUI_testApp: App {

    ...
    init() {
        // Kakao SDK 초기화
        KakaoSDK.initSDK(appKey: "NATIVE_APP_KEY")
    }

    var body: some Scene {
        WindowGroup {
            // onOpenURL()을 사용해 커스텀 URL 스킴 처리
            ContentView().onOpenURL(perform: { url in
                if (AuthApi.isKakaoTalkLoginUrl(url)) {
                    AuthController.handleOpenUrl(url: url)
                }
            })
        }
    }
    ...

}

🧤 핸들링

.onOpenURL { url in
	if (AuthApi.isKakaoTalkLoginUrl(url)) {
		AuthController.handleOpenUrl(url: url)
	}
}

🔑 로그인

카카오에서는 로그인 API를 2개를 알려준다.

  • loginWithKakaoTalk: 카카오톡 계정 이용 (권장0
  • loginWithKakaoAccount: 웹 브라우저를 통해 카카오 계정 로그인

isKakaoTalkLoginAvailable 함수를 통해 KakaTalk 실행 가능성 여부를 확인할 수 있다.

  private func loginWithKakao() {
    if UserApi.isKakaoTalkLoginAvailable() {
      UserApi.shared.loginWithKakaoTalk { token, error in
        print("KakaoTalk: \(token) \(error)")
      }
    } else {
      UserApi.shared.loginWithKakaoAccount { token, error in
        print("KakaoAccount: \(token) \(error)")
      }
    }
  }

🔓 로그아웃

  private func logoutWithKakao() {
    UserApi.shared.logout { error in
      
    }
  }

✂ 연결 끊기

  private func disconnectWithKakao() {
    UserApi.shared.unlink { error in

    }
  }

출처

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

 

 

 

 

반응형