안녕하세요. KataRN입니다.
저번에 알아봤던 이메일 로그인 구글로그인을 알아보겠습니다.
우선 저번시간에 알려드림 기본적인 세팅과 이메일 로그인은 아래 링크를 참고해주세요.
https://katarnios.tistory.com/45
Apple 로그인은 아래 링크를 참고해주세요.
https://katarnios.tistory.com/47
참고사항
구글로그인의 버튼 이미지는 규격을 지켜야합니다. 아래 가이드라인 참고해주세요~
(https://developers.google.com/identity/branding-guidelines?hl=ko)
0. 사전준비
우선 파이어베이스에 접속(https://console.firebase.google.com/project/_/authentication/users)
그리고 이미지로 설명 드리겠습니다.
이제 코코아팟으로 'GoogleSignIn'을 설치합시다~
해당링크 참고 부탁드립니다.
https://katarnios.tistory.com/23
그리고 끝이 아닙니다.
저번에 했던 소개했던 글(상단)에서 추가했던 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
오늘도 긴글 읽어주셔서 감사합니다.
다음엔 애플로그인입니다!
감사합니다.
'Old_SWIFT(221012) > 라이브러리이야기' 카테고리의 다른 글
Kingfisher 다루기 (0) | 2022.03.22 |
---|---|
Firebase Auth 다루기 (3/3) (Apple 로그인) (0) | 2022.03.21 |
Firebase Auth 다루기 (1/3) (소개, 이메일 회원가입, 로그인, 로그아웃, 회원정보수정, 암호재설정) (0) | 2022.03.20 |
다양한 그래프 그리기(라이브러리 Charts 사용, 파이차트, 원차트 포함)(쉬움주의, 따라만해) (0) | 2021.12.22 |
CocoaPods(코코아팟) 사용법(쉬움주의, 따라만해), Charts라이브러리 설치 (0) | 2021.12.22 |