[swift] Swift FirebaseUI를 사용하여 소셜 로그인 구현하기

프로젝트에서 소셜 로그인 기능을 구현하려는 경우 FirebaseUI 라이브러리를 사용할 수 있습니다. FirebaseUI는 Firebase 서비스의 다양한 기능들을 쉽게 구현할 수 있도록 도와주는 라이브러리입니다. 이번 블로그 포스트에서는 Swift FirebaseUI를 사용하여 소셜 로그인 기능을 구현하는 방법을 알아보겠습니다.

FirebaseUI 설치하기

먼저, FirebaseUI를 설치해야 합니다.

pod 'FirebaseUI/Auth'

위의 코드를 Podfile에 추가한 뒤, 터미널에서 pod install 명령어를 실행하여 FirebaseUI를 설치합니다.

Google 소셜 로그인 구현하기

Google 소셜 로그인을 구현하기 위해 Google FirebaseUI를 사용할 수 있습니다. 먼저, Google 소셜 로그인을 활성화해야 합니다.

  1. Firebase 콘솔에 로그인하고, 프로젝트를 선택합니다.
  2. 좌측 메뉴에서 “Authentication”을 선택하고, “로그인 방법” 탭을 선택합니다.
  3. “Google” 로그인 방법을 찾아 클릭합니다.
  4. “활성화”를 선택하고, “웹 SDK 구성” 버튼을 클릭합니다.
  5. “웹 SDK 구성” 팝업에서 “config” 오브젝트의 “apiKey”, “authDomain”, “clientId” 값을 기록합니다.

이제, 소셜 로그인 기능을 구현할 뷰 컨트롤러에서 다음과 같이 코드를 작성합니다.

import FirebaseUI

class LoginViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let authUI = FUIAuth.defaultAuthUI()
        guard let authViewController = authUI?.authViewController() else { return }
        authViewController.modalPresentationStyle = .fullScreen
        present(authViewController, animated: true, completion: nil)
    }
}

위의 코드에서 FUIAuth.defaultAuthUI()를 사용하여 FirebaseUI의 인스턴스를 가져오고, authUI?.authViewController()를 호출하여 소셜 로그인 뷰 컨트롤러를 얻어옵니다. 그리고 해당 뷰 컨트롤러를 present 메소드를 사용하여 모달로 표시합니다.

Google 소셜 로그인을 사용할 경우, FirebaseUI가 자동으로 로그인 화면을 보여주고, 사용자가 로그인하면 인증 정보를 가져옵니다.

소셜 로그인 로직 추가하기

소셜 로그인에 성공했을 경우, 인증 정보를 처리하고 원하는 동작을 수행해야 합니다. 다음은 로그인 성공 시 호출되는 메소드입니다.

func authUI(_ authUI: FUIAuth, didSignInWith user: User?, error: Error?) {
    if error == nil {
        // 로그인 성공한 경우
        // 원하는 동작 수행
    } else {
        // 로그인 실패한 경우
        print(error?.localizedDescription)
    }
}

위의 메소드에서는 error가 nil인 경우 로그인에 성공했다는 의미이므로, 여기에서 원하는 동작을 수행하면 됩니다.

결론

FirebaseUI를 사용하여 소셜 로그인 기능을 구현하는 방법에 대해 알아보았습니다. FirebaseUI를 사용하면 Firebase의 다양한 기능들을 쉽게 구현할 수 있으므로, 프로젝트에 소셜 로그인이나 다른 Firebase 기능을 추가하고자 하는 경우에 유용하게 사용할 수 있습니다.

참고자료: