Old_SWIFT(221012)/라이브러리이야기

Firebase Auth 다루기 (2/3) (구글로그인)

KataRN 2022. 3. 20. 23:43
반응형

안녕하세요. KataRN입니다.

 

저번에 알아봤던 이메일 로그인 구글로그인을 알아보겠습니다.

 

우선 저번시간에 알려드림 기본적인 세팅과 이메일 로그인은 아래 링크를 참고해주세요.

https://katarnios.tistory.com/45

 

Firebase Auth 다루기(기본, 이메일로그인) (1/2)

안녕하세요 KataRN입니다. 오늘은 Firebase 인증에 대해 설명해드리려고 합니다. Firebase Auth 로 무엇을 할 수 있는가? -> 이것을 이용해서 로그인을 구현 할 수 있습니다. 로그인구현에 필요한것...은

katarnios.tistory.com

Apple 로그인은 아래 링크를 참고해주세요.

https://katarnios.tistory.com/47

 

Firebase Auth 다루기 (3/3) (Apple 로그인)

안녕하세요. KataRN입니다. 드디어 마지막 애플로그인, 로그아웃, 회원정보 수정 입니다. 더보기 애플은 2019년 애플 로그인 기능을 발표했습니다. 동시에 앱 내에 다른 소셜 로그인 서비스를 사용

katarnios.tistory.com

 

참고사항

구글로그인의 버튼 이미지는 규격을 지켜야합니다. 아래 가이드라인 참고해주세요~

(https://developers.google.com/identity/branding-guidelines?hl=ko)

 

0.  사전준비

우선 파이어베이스에 접속(https://console.firebase.google.com/project/_/authentication/users)

그리고 이미지로 설명 드리겠습니다.

 

이제 코코아팟으로 'GoogleSignIn'을 설치합시다~

해당링크 참고 부탁드립니다.

https://katarnios.tistory.com/23

 

CocoaPods(코코아팟) 사용법(쉬움주의, 따라만해), Charts라이브러리 설치

안녕하세요 KataRN입니다. 오늘은 코코아팟에 대해 알려드리려고 합니다. 우선 코코아팟이란? "CocoaPods는 Swift 및 Objective-C 코코아 프로젝트의 종속성 관리자입니다. 80,000 개가 넘는 라이브러리를

katarnios.tistory.com

 

그리고 끝이 아닙니다.

 

저번에 했던 소개했던 글(상단)에서 추가했던 GoogleService-Info를 봅시다.

REVERSED_CLIENT_ID 값을 복사해줍시다.

그리고 프로젝트 -> TARGETS -> Info -> URL Types 추가

 

그리고 URL_Schemes에 아까 붙여둔 REVERSED_CLIENT_ID값을 넣어줍니다.

구글이 권한을 위임할 서비스를 구분하기 위한 작업입니다.

여기까지 설정이 끝났으면 이제 AppDelegate로 이동합니다.

해당부분 추가해주세요.

 

1. 구글 로그인

import GoogleSignIn
import Firebase
import FirebaseAuth

@IBOutlet weak var googleBtn: GIDSignInButton!

guard let clientID = FirebaseApp.app()?.options.clientID else { return }
  let config = GIDConfiguration(clientID: clientID)
  GIDSignIn.sharedInstance.signIn(with: config, presenting: self) { [unowned self] user, error in
  if let error = error {
    print("ERROR", error.localizedDescription)
    return
  }

  guard let authentication = user?.authentication,
  let idToken = authentication.idToken else { return }
  
  //GIDSignIn을 통해 받은 idToken, accessToken으로 Firebase에 로그인합니다.
  let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)

  Auth.auth().signIn(with: credential) { _, _ in
	//로그인화면이동
  }
}

 

이렇게 로그인을 하면 회원정보에 추가됩니다.

 

 

2. 로그아웃

    @IBAction func logoutBtn(_ sender: UIButton) {
        let firebaseAuth = Auth.auth()
        do {
            try firebaseAuth.signOut()
            self.navigationController?.popToRootViewController(animated: true)
        } catch let signOutError as NSError {
            print ("Error signing out: %@", signOutError)
        }
    }

 

3. 암호 재설정(이메일로 링크전송)

let email = Auth.auth().currentUser?.email ?? ""
Auth.auth().sendPasswordReset(withEmail: email, completion: nil)

 

사실 2, 3번의 내용은 이전글에 같은내용이 있습니다. 참고부탁드립니다.ㅎㅎ

https://katarnios.tistory.com/45

 

Firebase Auth 다루기(기본, 이메일로그인) (1/2)

안녕하세요 KataRN입니다. 오늘은 Firebase 인증에 대해 설명해드리려고 합니다. Firebase Auth 로 무엇을 할 수 있는가? -> 이것을 이용해서 로그인을 구현 할 수 있습니다. 로그인구현에 필요한것...은

katarnios.tistory.com

 

오늘도 긴글 읽어주셔서 감사합니다.

다음엔 애플로그인입니다!

 

감사합니다.

반응형