ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [iOS] kakao login 함수 호출 과정
    developing diary 2024. 8. 29. 22:14

    카카오 로그인 문서

     

    Kakao Developers

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

    developers.kakao.com

     

    카카오 로그인을 붙이는 과정에서 함수 호출 과정이 헷갈렸던 부분 정리.

     

    카카오 로그인 과정은 아래와 같다고 한다.
    그래서 크게 보면 토큰을 먼저 확인 & 카카오 계정 로그인 관련 함수들을 호출하는 순서다.

     

     

    사전 설정

    • 플랫폼 등록
    • 카카오 로그인 활성화 동의항목
    • OpenID Connect 활성화(선택)
    • 간편가입(선택)

    위와 같은 들을 모두 했다고 가정하고

    UserApi의 함수 호출을 해봤다.

    UserApi.shared.loginWithKakaoAccount {(oauthToken, error) in
            if let error = error {
                print(error)
            }
            else {
                print("loginWithKakaoAccount() success.")            
    
                //do something
                _ = oauthToken            
            }
        }

    여기서 에러 KE101 발생

    - 앱 키를 분명히 URL설정해주고 AppDelegate에 넣어줬는데 왜 그런지 봤더니 실제 앱 키를 작성해줘야 했다...그리고 해결  

     

     

    로그인과 관련한 함수들이 많은데

    아래처럼 호출해줘야 한다.

    1. 토큰 체크

     if AuthApi.hasToken() {
      UserApi.shared.accessTokenInfo { (_, error) in
      
      ..
      }
     }

    2. 토큰 보유 여부에 따라 로그인 함수 호출

    2.1 토큰이 없을 경우

    - 카카오톡 실행 가능 여부를 먼저 확인하는 함수 호출

    - 아래 리턴값에 따라 분기처리해주기(카카오톡 웹브라우저 or 카카오톡 앱으로 로그인)

    if (UserApi.isKakaoTalkLoginAvailable()) {
    
    }


    - 카카오톡 웹브라우저로 로그인

     UserApi.shared.loginWithKakaoAccount() {(oauthToken, error) in
     ...
     }

    - 카카오톡 앱으로 로그인

      UserApi.shared.loginWithKakaoTalk {(oauthToken, error) in
      ...
      }

    2.2 토큰이 있는 경우 & access token이 유효한 경우

    - 유저 정보를 가져오는 함수 호출

     UserApi.shared.me() {(user, error) in
                if let error = error {
                    print(error)
                } else {
                ...
              	  }
                }

     

    'developing diary' 카테고리의 다른 글

    [Swift] 프로그래머스 - 다리를 지나는 트럭  (0) 2024.09.02
    @StateObject  (0) 2021.03.14
    뷰 - 모델 설계  (0) 2021.03.11
    Hashable  (0) 2021.03.09
    Almofire - json object array  (0) 2021.03.07

    댓글

Designed by Tistory.