SwiftUI 카카오 로그인 해보기 [2]

이승원·2022년 11월 21일
0
post-thumbnail

이제 모든 초기설정을 끝났고 이제 실제로 로그인 및 로그아웃을 구현해보자. 아래 링크를 통해 어떤 방식으로 진행되는지에 대해서 간단히 알아보자.

iOS 카카오 로그인

카카오톡으로 로그인 기능을 구현하기 위해 필수로 설정해야하는 handleOpenURL() 입니다. 카카오톡에서 서비스 앱으로 돌아왔을때 카카오 로그인 처리를 정상적으로 완료하기 위함 입니다.

아래 코드를 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)
            }
        }
    }
}

이제 다시 Info.plist에 가서 인터넷 사용을 위한 설정을 해줘야한다. App Transport Security Settings 와 Allow Arbitrary Loads를 Property List에 추가해준다.

ContentView에 버튼 두개와 Text를 만들어서 로그인과 로그아웃을 구현할 수 있도록 만들어보자. 참고로 카카오 Developer 디자인 가이드를 확인하면 버튼 이미지 PNG 및 PSD 파일을 받을 수 있다.

이제 KakaoAuthVM view Model을 새로 만들어서 로그인 기능을 구현해보자. 로그인 기능 구현은 굉장히 간단하다. 크게 두 가지로 나눠진다고 생각하면된다.

1. 카카오톡이 설치되어 있는 기기

2. 카카오톡이 설치되어 있지 않는 기기

제일 먼저 카카오톡이 설치되어 있는지 부터 확인을 해야한다. 만약 설치가 되어 있다면, 카카오톡을 실행시켜 로그인을 할 수 있는 방법으로 진행이되고, 만약 설치가 안되어 있다면 웹뷰를 통해 카카오 계정으로 로그인할 수 있게끔 구현했다.

로그아웃 기능은 더욱 간단하다.

이제 KakaoAuthVM 과 ContectView에 있는 버튼과 연결만 시켜주면 끝이다.

    @StateObject var kakaoAuthVM : KakaoAuthVM = KakaoAuthVM()
    
    Button("카카오 로그인", action: {
                kakaoAuthVM.handleKakaoLogin()
            })
    Button("카카오 로그아웃", action: {
                kakaoAuthVM.kakaoLogout()
            })

이렇게 하면 카카오 로그인 및 로그아웃 기능을 구현했다.

profile
개발자 (진)

0개의 댓글