티스토리 뷰

macOS, iOS

[iOS] 카카오 간편로그인

SweetDev 2021. 2. 9. 12:17

developers.kakao.com/docs/latest/ko/kakaologin/ios

 

* 간편 로그인 버튼은 크기, 영문/한글 선택해서 psd랑 png로 뽑을 수 있는데 1x~3x 사이즈로는 제공이 안된다. 디자이너분께 말씀드려서 iOS 에셋 크기로 맞춰달라고 해야 할 것 같다.... 

 

-> 수정) iOS SDK 안에 있을것같다...

 

** 앱 등록을 하고 NATIVE_APP_KEY를 전달 받아야한다. 외주회사에서 미리 받자!

 

1. pod으로 SDK 설치

target '' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!
  
  # 카카오
  pod 'KakaoSDKCommon'  # 필수 요소를 담은 공통 모듈
  pod 'KakaoSDKAuth'  # 카카오 로그인
  pod 'KakaoSDKUser'  # 사용자 관리
  pod 'KakaoSDKTalk'  # 친구, 메시지(카카오톡)
  pod 'KakaoSDKStory'  # 카카오스토리
  pod 'KakaoSDKLink'  # 메시지(카카오링크)
  pod 'KakaoSDKTemplate'  # 메시지 템플릿
  pod 'KakaoSDKNavi'  # 카카오내비
end

 

 

2. Info.plist에 LSApplicationQueriesSchemes 추가해주기.

 

kakaokompassauth - 카카오톡으로 로그인

kakaolink - 카카오링크

 

3. URL Schemes 설정

 

kakao{NATIVE_APP_KEY}로 등록해준다.

 

 

+ ) 코드

 

AppDelegate에는...

import KakaoSDKCommon

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

  ...
  KakaoSDKCommon.initSDK(appKey: "NATIVE_APP_KEY")
  ...

}

 

SceneDelegate에는...

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
    if let url = URLContexts.first?.url {
      if AuthApi.isKakaoTalkLoginUrl(url) {
        _ = AuthController.handleOpenUrl(url: url)
      }
    }
  }

 

함수는...

 func didTapKakaoLogin() {
    /// 카카오 간편 로그인
    // 카카오톡 설치 여부 확인
    if AuthApi.isKakaoTalkLoginAvailable() {
      AuthApi.shared.loginWithKakaoTalk { oauthToken, error in
        if let error = error {
          print(error)
        } else {
          print("loginWithKakaoTalk() success.")
          // do something
          // TODO: SNSRegisterScene으로 넘어가기.
          isKakaoTalkActive = true
          _ = oauthToken

          UserApi.shared.me { user, error in
            if let error = error {
              print(error)
            } else {
              print(user?.kakaoAccount?.email ?? "basdopaskdlasj")
              snsAccount = user?.kakaoAccount?.email ?? ""
            }
          }
        }
      }
    } else {
      // 카카오 계정으로 로그이
      AuthApi.shared.loginWithKakaoAccount { oauthToken, error in
        if let error = error {
          print(error)
        } else {
          print("loginWithKakaoAccount() success.")

          // do something
          _ = oauthToken
        }
      }
    }
  }

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함