구현 방법 선택
1. 카카오톡으로 로그인
- loginWithKakaoTalk() 메서드 사용
- lanuchMethod 파라미터를 사용해 .CustomScheme 또는 .UniversalLink 중 하나로 앱 전환 방식 설정 가능
2. 카카오계정으로 로그인
- loginWithKakaoAccount() 메서드 사용
- 기본 웹 브라우저를 통해 카카오계정 정보를 입력하고 로그인
모듈 설정
카카오 로그인 API를 사용하려면 카카오 로그인 모듈인 KakaoSDKUser,
사용자 인증 및 토큰 관리자 모듈인 KakaoSDKAuth를 설치해야 한다.
import KakaoSDKCommon
import KakaoSDKAuth
import KakaoSDKUser
실습
위 링크와 같은 카카오 개발자 페이지에 들어간다.
이후, 내 애플리케이션에 들어가서 카카오 로그인하고 등록을 하고 키를 발급 받는다.
📍Kakao Developers에서 설정
1️⃣ 추가하면서 앱 이름과 사업자명, 카테고리를 넣어주고
2️⃣ 카카오 로그인으로 가서 OFF→ ON으로 변경한다.
3️⃣ 동의항목으로 가서 개인정보 상태를 설정해준다.
📍터미널에서 KakaoSDK 추가
프로젝트 폴더에서 Pod init → Podfile 에 아래 코드 추가 → Pod install
# 전체 추가
pod 'KakaoSDK'
📍패키지 추가
프로젝트로 돌아가서 우리가 많이 했던 패키지 추가해줘야 한다.
https://github.com/kakao/kakao-ios-sdk
Add Packages → 요 링크를 복사해서 추가해주세용
굉장히 많지만!! 나는 필요한 아이들만 해줬다
'KakaoSDKCommon' # 필수 요소를 담은 공통 모듈
'KakaoSDKAuth' # 사용자 인증
'KakaoSDKUser' # 카카오 로그인, 사용자 관리
📍Xcode에서 설정
[Info] > [Custom iOS Target Properties]에 LSApplicationQueriesSchemes를 추가 (Array 타입)
해당 키의 아이템으로 커스텀 URL 스킴에 사용할 값인 kakaokompassauth, kakaolink를 추가 (String)
Kakao Developers에서 네이티브 키를 가져와 kakao{네이티브 키} 를 URL Scheme에 넣어준다.
예를 들어, 내 네이티브 키가 abab123이라면 kakaoabab123을 넣어주면 된다.
📍 초기화
SceneDelegate에 아래 코드를 추가해준다.
import KakaoSDKAuth
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
if let url = URLContexts.first?.url {
if (AuthApi.isKakaoTalkLoginUrl(url)) {
_ = AuthController.handleOpenUrl(url: url)
}
}
}
📍 추가 코드
AppDelegate에 아래 두 코드를 추가해준다.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
KakaoSDK.initSDK(appKey: "네이티브키")
return true
}
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
if (AuthApi.isKakaoTalkLoginUrl(url)) {
return AuthController.handleOpenUrl(url: url)
}
return false
}
참고 레퍼런스
'📱 Mobile > iOS' 카테고리의 다른 글
[iOS - UIKit] ScrollView에서 Button 클릭 시 화면의 최상단, 최하단 이동 (0) | 2024.03.11 |
---|---|
[iOS - UIKit] Compositional Layout - CollectionView (0) | 2024.01.11 |
[iOS - Swift] 동시성 프로그래밍, 비동기성 프로그래밍, 병렬성 프로그래밍 (0) | 2023.12.21 |
[iOS - Swift] Final 키워드 (0) | 2023.11.16 |
[iOS - Swift] 접근 제어자(open, public, internal, fileprivate, private), setter (0) | 2023.10.16 |