-
카카오 간편 로그인 연동Language/iOS,AOS 2023. 2. 20. 23:06
1. Kakao 개발자 사이트 앱 등록 (스킵)
카카오 개발자 사이트 접속 후 앱 등록
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
2. SDK 설치
코코아팟으로 SDK 설치합니다.
참조 : https://dchkang83.tistory.com/104
iOS/Xcode 14X - 2. CocoaPods 추가
CocoaPods란? dependacy management & 많은 xcode 프로젝트 라이브러리 들을 관리한다. (gradle?, maven? 등의 역할!!) Xcode에서 라이브러리 관리(Dependency Management)해주는 방법에는 대표적으로 3가지가 있다 CocoaPod
dchkang83.tistory.com
카카오 개발자 문서를 보면 아래와 같이 친절히 설명되어 있습니다.
참조 : https://developers.kakao.com/docs/latest/ko/getting-started/sdk-ios
# 전체 추가 pod 'KakaoSDK' # or # 필요한 모듈 추가 pod 'KakaoSDKCommon' # 필수 요소를 담은 공통 모듈 pod 'KakaoSDKAuth' # 사용자 인증 pod 'KakaoSDKUser' # 카카오 로그인, 사용자 관리 pod 'KakaoSDKTalk' # 친구, 메시지(카카오톡) pod 'KakaoSDKStory' # 카카오스토리 pod 'KakaoSDKShare' # 메시지(카카오톡 공유) pod 'KakaoSDKTemplate' # 메시지 템플릿 pod 'KakaoSDKNavi' # 카카오내비 pod 'KakaoSDKFriend' # 카카오톡 소셜 피커, 리소스 번들 파일 포함
필자는 로그인 부분만 처리할 거라서 모두 설치는 안하고 아래와 같이 필요한 것만 설치하겠습니다.
target 'gobang' do ... # 카카오 pod 'KakaoSDKCommon' # 필수 요소를 담은 공통 모듈 pod 'KakaoSDKAuth' # 사용자 인증 pod 'KakaoSDKUser' # 카카오 로그인, 사용자 관리 ... end
SDK 설치가 완료되었다면 Xcode를 재시작 해주시고 라이브러리가 인식할 수 있도록 해줍니다.
3. Xcode 설정
3.1. 앱 실행 허용 목록 설정하기
iOS 9.0 이상에서 iOS SDK를 통해 카카오톡, 카카오스토리 등 애플리케이션을 실행시키는 기능을 이용하려면 info.plish 파일에 앱 실행 허용 목록을 설정해야 한다고 합니다.
Info -> Open As -> Source Code
info.plist 에 LSApplicationQueriesSchemes를 추가하고 해당 키의 item으로 kakaokompassauth, kakaolink 추가
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> ... <key>LSApplicationQueriesSchemes</key> <array> <string>kakaokompassauth</string> <string>kakaolink</string> </array> ... </dict> </plist>
3.2. URL Schemes 설정하기
카카오계정을 통한 인증과 카카오톡 메시지를 통한 앱 실행을 위해 URL Schemes 설정을 해줘야 합니다.
TARGETS -> Info -> URL Types -> URL Schemes 항목에 네이티브 앱 키를 kakao${NATIVE_APP_KEY} 형식으로 등록합니다.
네이티브 앱키가 "1234"이면 kakao1234 4. AppDelegate, SceneDelegate 설정
4.1 SDK 초기화
AppDelegate.swift 파일에 다음과 같이 kakaoSDK 초기화 코드를 추가
import KakaoSDKCommon @main class AppDelegate: UIResponder, UIApplicationDelegate { ... func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { ... // KakaoSDK.initSDK(appKey: "${NATIVE_APP_KEY}") KakaoSDK.initSDK(appKey: "test12345") ... } ... }
4.2. handleOpenURL
서비스 앱에서 카카오톡으로 이동한 후 사용자가 동의 또는 로그인 취소 버튼을 누르면 카카오톡에서 서비스 앱으로 이동하는 과정을 거칩니다.
카카오톡에서 서비스 앱으로 돌아왔을 때 로그인 처리를 정상적으로 완료하기 위해 AppDelegate.swift 파일에 handleOpenUrl()함수 추가가 필요 합니다.
- iOS 13 이상 (SceneDelegate를 기본으로 사용, 필자 해당)
import KakaoSDKAuth class SceneDelegate: UIResponder, UIWindowSceneDelegate { ... func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { if let url = URLContexts.first?.url { if (AuthApi.isKakaoTalkLoginUrl(url)) { _ = AuthController.handleOpenUrl(url: url) } } } ... }
iOS 13 이하 (AppDelegate를 기본으로 사용)
import KakaoSDKAuth @main class AppDelegate: UIResponder, UIApplicationDelegate { ... func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { if (AuthApi.isKakaoTalkLoginUrl(url)) { return AuthController.handleOpenUrl(url: url) } return false } ... }
5. 로그인 구현
func loginWithKakao() { if (UserApi.isKakaoTalkLoginAvailable()) { // 카톡 설치되어있으면 -> 카톡으로 로그인 UserApi.shared.loginWithKakaoTalk {(oauthToken, error) in if let error = error { print(error) } else { print("카톡으로 로그인 성공") _ = oauthToken } } } else { // 카톡 없으면 -> 계정으로 로그인 UserApi.shared.loginWithKakaoAccount { (oauthToken, error) in if let error = error { print(error) } else { print("카카오 계정으로 로그인 성공") _ = oauthToken } } } }
에러!
2023-02-21 10:23:31911 [ℹ️][Api.swift 130:41] -> response:
Optional({
error = misconfigured;
"error_code" = KOE009;
"error_description" = "invalid android_key_hash or ios_bundle_id or web_site_url";
})
플랫폼에 등록되지 않았기 때문이다, Kakao Developers의 앱 설정에 들어가 iOS플랫폼을 등록한다.
iOS 플랫폼 등록 참조 :
https://soobaaaam.tistory.com/24
참조
https://developers.kakao.com/docs/latest/ko/getting-started/sdk-ios
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
iOS 소셜 로그인 구현 - 카카오톡 로그인 연동
안녕하세요! 도안입니당. 요 며칠 소셜 로그인때문에 애먹었는데 기록해두지 않으면 또 헤맬 것 같아서 기록해둡니다! 사실 애먹은 이유는 bundle id, certeficates 쪽이긴 한데, 이것두 나중에 포스팅
doh-an.tistory.com
iOS 카카오 로그인 구현하기
로그인하는 앱들중의 대부분은 소셜로그인 기능이 기본적으로 들어가고 있습니다.이번에 다룰 내용은 카카오톡 소셜 로그인 기능을 구현해보려 합니다.일단 카카오 로그인 기능은 Kakao Developers
velog.io
https://leechanho.tistory.com/48
[iOS & Xcode] Dev & Release 빌드 환경 분리
Xcode에서는 프로젝트를 생성할 때 기본적으로 debug와 release의 두가지 빌드 환경을 제공해줍니다. 이번 포스팅의 목표는, Rest API url, 외부 서비스의 API Key 등을 빌드 환경에 따라 동적이게 변경하
leechanho.tistory.com
How to register different URL Scheme for each app configuration (Debug, Release, ..etc)?
So I have two URL Schemes that look like this myapp:\\ and myapp-dev:\\ that I added under {MyTarget} > Info > URL Types and I need each one of them to open the corresponding app (first one for
stackoverflow.com
'Language > iOS,AOS' 카테고리의 다른 글
페이스북 간편 로그인 (0) 2023.02.23 네이버 간편 로그인 연동 (0) 2023.02.21 Xcode Swift에서 GIF 사용 (0) 2023.02.20 Swift와 코코아팟으로 생성된 프로젝트 복사 (0) 2023.02.17 카메라/사진/위치 권한 추가 (0) 2023.02.16