[swift] Swift에서 Firebase 인증을 이용한 구글 로그인 구현

이번 포스트에서는 Swift 프로그래밍 언어를 사용하여 Firebase 인증을 통해 구글 로그인을 구현하는 방법을 알아보겠습니다.

구글 로그인을 구현하기 위해서는 먼저 Firebase 프로젝트를 만들어야 합니다. Firebase 콘솔에서 프로젝트를 생성한 후, 구글 로그인을 사용하도록 설정해야 합니다.

Firebase 프로젝트 설정

  1. Firebase 콘솔로 이동합니다.
  2. 새 프로젝트를 생성하거나 기존 프로젝트를 선택합니다.
  3. “Authentication” 탭으로 이동합니다.
  4. “로그인 방법” 탭에서 “Google”을 선택하고 “활성화”를 클릭합니다.
  5. “콘솔 사용자 관리” 탭에서 “위젯 추가”를 클릭합니다. 이 단계는 웹 앱의 구성을 수행하는 것이므로 무시해도 됩니다.

구글 로그인 구현하기

Swift 프로젝트에서 Firebase SDK를 사용할 수 있도록 설정해야 합니다. Podfile에 다음과 같이 Firebase/Auth 라이브러리를 추가합니다.

pod 'Firebase/Auth'

설치를 완료한 후, Firebase SDK를 초기화하는 코드를 AppDelegate.swift 파일에 추가합니다.

import Firebase

FirebaseApp.configure()

이제 Google 로그인을 구현할 ViewController.swift 파일에 다음의 코드를 추가합니다.

import UIKit
import Firebase
import GoogleSignIn

class ViewController: UIViewController, GIDSignInDelegate {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
        GIDSignIn.sharedInstance().delegate = self
    }

    @IBAction func googleLoginButtonPressed(_ sender: UIButton) {
        GIDSignIn.sharedInstance()?.signIn()
    }
    
    func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
        if let error = error {
            print("Google Sign In Error: \(error.localizedDescription)")
            return
        }
        guard let authentication = user.authentication else {
            return
        }
        let credential = GoogleAuthProvider.credential(withIDToken: authentication.idToken,
                                                       accessToken: authentication.accessToken)
        
        Auth.auth().signIn(with: credential) { (authResult, error) in
            if let error = error {
                print("Firebase Sign In Error: \(error.localizedDescription)")
                return
            }
            // 로그인 성공시 처리할 내용을 작성합니다.
        }
    }
}

위의 코드에서 “googleLoginButtonPressed” 메소드는 구글 로그인 버튼이 눌렸을 때 호출되는 메소드입니다. “didSignInFor” 메소드는 사용자가 구글 계정으로 로그인 한 후에 호출되는 콜백 메소드입니다. 여기서 Firebase에 사용자를 로그인 시키고 성공 혹은 실패에 따라 처리할 내용을 작성할 수 있습니다.

결론

이렇게 Swift에서 Firebase 인증을 이용하여 구글 로그인을 구현하는 방법을 알아보았습니다. Firebase를 사용하면 간단한 코드 몇 줄만으로도 손쉽게 소셜 로그인을 구현할 수 있습니다.

더 자세한 내용은 Firebase 공식 문서를 참고하세요.