[swift] Swift FirebaseUI를 사용하여 이메일 인증 구현하기

이 튜토리얼에서는 Swift FirebaseUI를 사용하여 Firebase에 이메일 인증을 구현하는 방법을 알아보겠습니다.

FirebaseUI는 Firebase의 다양한 기능을 빠르고 쉽게 구현할 수 있도록 도와주는 라이브러리입니다. 이메일 인증을 구현하기 위해서는 FirebaseUI의 AuthUI를 사용하면 됩니다.

FirebaseUI 설치하기

FirebaseUI를 사용하기 위해 먼저 Cocoapods를 통해 FirebaseUI를 프로젝트에 추가해야 합니다. Podfile 파일에 다음과 같은 코드를 추가하세요:

pod 'FirebaseUI/Auth'

그리고 터미널에서 다음 명령어를 실행하여 Cocoapods를 설치하세요:

pod install

이메일 인증 화면 구현하기

FirebaseUI를 이용하여 이메일 인증 화면을 빠르게 구현할 수 있습니다. ViewController에서 다음과 같은 코드를 작성하세요:

import UIKit
import FirebaseUI

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let authUI = FUIAuth.defaultAuthUI()

        // 이메일 로그인 방법을 사용하도록 설정합니다.
        authUI?.providers = [FUIGoogleAuth(), FUIEmailAuth()]

        let authViewController = authUI!.authViewController()
        present(authViewController, animated: true, completion: nil)
    }
}

위의 코드에서 providers 에는 인증 방법으로 이메일(FUIEmailAuth)과 구글(FUIGoogleAuth)을 설정하였습니다. 또한, authUI!.authViewController() 를 통해 인증 화면을 가져온 후, present 메서드를 사용하여 화면을 보여줍니다.

인증 완료 후 처리하기

인증이 완료되었을 때 처리해야 할 로직을 구현해야 합니다. 이를 위해 FUIAuthDelegate 를 구현하세요. ViewController에 다음과 같은 코드를 추가하세요:

extension ViewController: FUIAuthDelegate {

    func authUI(_ authUI: FUIAuth, didSignInWith authDataResult: AuthDataResult?, error: Error?) {
        // 인증 완료 후 로직을 구현하세요

        if let error = error {
            // 오류 처리
            print("Error signing in: \(error.localizedDescription)")
            return
        }

        // 인증이 성공적으로 완료된 경우
        if let user = authDataResult?.user {
            print("Signed in as \(user.uid)")
            // 로그인 성공 화면으로 이동 등의 로직을 구현하세요
        }
    }
}

위의 코드에서 authUI(_:didSignInWith:error:) 메서드는 사용자가 인증을 완료하고 로그인할 때 호출됩니다. 이곳에서 사용자의 인증 결과를 확인하고, 로그인 성공 시에는 다음 로직(예: 로그인 성공 화면으로 이동)을 구현하세요.

인증 상태 유지하기

FirebaseUI를 사용하면 인증 상태를 유지하기 위한 코드를 추가로 구현할 필요가 없습니다. FirebaseUI가 자동으로 인증 상태를 유지하고 관리해주기 때문입니다.

이제 FirebaseUI를 사용하여 Swift로 이메일 인증을 구현하는 방법을 알게 되었습니다. FirebaseUI를 사용하면 쉽고 빠르게 Firebase 인증 기능을 구현할 수 있으니, 이를 활용하여 안전하고 편리한 인증 시스템을 구축해보세요.

참고 자료