Swift

iOS 카카오 로그인

반다이크 2022. 2. 26. 21:50
반응형

0. Kakao Developers 접속

https://developers.kakao.com

 

Kakao Developers

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

developers.kakao.com

 

1. 앱 만들기

1–1. 내 애플리케이션 클릭

1–2. 애플리케이션 추가하기 클릭

1-3. 아이콘, 앱이름, 사업자명 채우고 저장 클릭

 

2. 플랫폼 등록

2–1. 생성된 앱 확인하고 클릭

 

2–2. 플랫폼 설정하기 클릭

 

2–3. iOS 플랫폼 등록 클릭

 

2–4. 번들 ID (필수) 및 앱스토어 등록되어있다면 해당 id까지 입력 후 저장

3. 카카오 로그인 설정

3–1. 왼쪽 메뉴창의 카카오 로그인 클릭 후 활성화 상태 클릭

 

 

3–2. 활성화 클릭

 

4. 동의 항목 설정

4–1. 왼쪽 메뉴창의 동의 항목 클릭 후 필요한 정보 설정 클릭

 

 

4–2. 동의 단계 선택 및 목적 입력 후 저장

 

프로젝트(XCode) 설정

0. 기본 요구 사항

  • iOS 11.0 이상
  • Xcode 11.0 이상
  • Swift 4.2 이상
  • Cocoapods 1.8 이상
  • iOS Deployment Target 11.0 이상

1. Cocoapods를 이용한 SDK 설치

1–1. pod 파일이 없다면 해당 폴더에서 pod init 명령어를 통해 생성

1–2. 해당 폴더에 생긴 Podfile 클릭

1–3. Kakao SDK 중 로그인 관련 두개 모듈 설치

 

 

 

1–4. Command+S 로 Podfile 저장 후 해당 폴더에서 pod install 명령어 실행

 

2. info.plist에 앱 실행 허용 목록(Allowlist) 등록

방법 1. UI에서 설정하기

2–1. info.plist 클릭 후 나오는 목록에서 아무데나 마우스 올려 놓으면 나타나는 + 버튼 클릭

2–2. 새 항목으로 LSApplicationQueriesSchemes 입력 후 Type을 Array로 선택

 

2–3. 화살표가 ▼ (아래로 가게) 모양이 되도록 클릭한 후에 마우스를 올려 놓으면 나타나는 + 버튼 두번 클릭

2–4. kakaokompassauth, kakaolink를 각각 값으로 입력

3. URL Schemes 설정하기

3–1. URL Types에서 + 버튼 클릭

3–2. URL Schemes에 항목에 네이티브 앱 키(Native App Key)를 ‘kakao{NATIVE_APP_KEY}’ 형식으로 등록.

예를 들어 네이티브 앱 키가 '123456789'라면 'URL Schemes'에 'kakao123456789'를 입력

 

 

#카카오 네이티브 앱 키 확인하는 방법

4. 코드

4–1. AppDelegate.swift에 Kakao SDK를 초기화하는 코드를 추가

 

예를 들어 네이티브 앱 키가 ‘123456789’ 라면

KakaoSDKCommon.initSDK(appKey: "123456789")

 

 

AppDelegate 사용시

 

AppDelegate에서 카카오톡을 통한 사용자 인증에 필요한 함수 추가

 

SceneDelegate 사용시

 

테스트 코드

import KakaoSDKCommon
import KakaoSDKAuth
import KakaoSDKUser

@IBAction func kakaoLogin(_ sender: Any) {
        startKakaoLogin()
}

private func startKakaoLogin() {
        
        //카카오톡 설치된 경우 카톡 실행
        if (UserApi.isKakaoTalkLoginAvailable()) {
            UserApi.shared.loginWithKakaoTalk { oauthToken, error in
                onKakaoLoginCompleted(oauthToken?.accessToken)
            }
        }
        //카카오톡 설치되지 않은 경우 카카오 로그인 웹뷰를 띄운다.
        else{
            UserApi.shared.loginWithKakaoAccount(prompts:[.Login]) { oauthToken, error  in
                onKakaoLoginCompleted(oauthToken?.accessToken)
            }
        }
        
        func onKakaoLoginCompleted(_ accessToken : String?){
            getKakaoUserInfo(accessToken)
        }
        
        func getKakaoUserInfo(_ accessToken : String?){
            UserApi.shared.me() { [weak self] user, error in
                
                if error == nil {
                    let userId = String(describing: user?.id)
                    print("userID: ",userId)
                }
                
            }
        }
    }
반응형

'Swift' 카테고리의 다른 글

iOS 페이스북 로그인  (0) 2022.02.26
iOS 네이버 로그인  (0) 2022.02.26
FCM, APNS 연동 방법  (3) 2022.02.25
Firebase Dynamic Link  (0) 2022.02.25
URL Scheme 딥링크  (0) 2022.02.25