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

Firebase Auth 다루기 (1/3) (소개, 이메일 회원가입, 로그인, 로그아웃, 회원정보수정, 암호재설정)

KataRN 2022. 3. 20. 17:57
반응형

안녕하세요 KataRN입니다.

 

오늘은 Firebase 인증에 대해 설명해드리려고 합니다.

 

 

Firebase Auth 로 무엇을 할 수 있는가?

-> 이것을 이용해서 회원가입, 로그인 등을 구현 할 수 있습니다.

 

로그인구현에 반드시 필요한것...은 아니고... 구현하는데 필수적이진 않지만 이용하면 쉬워지는 것...

제가 처음 배울때 가장 많이 들은 라이브러리가 2개 있는데 Firebase와 Alamofire 두가지입니다.

그래서 언젠간 이 두가지는 꼭 글을 써야지 했는데... 드디어 쓰네요...

게으른 나...

 

저희가 로그인을 하려면 무엇이 필요할까요? 

우선 회원가입을 해야겠네요.

회원가입을 하면 아이디 및 비번, 정보 서버(DB)가 필요하겠죠?

그래야 서버(DB)에 있는 아이디와 비밀번호를 체크해서 로그인이 가능하기 때문이죠.

이걸 제가 다 만들려니 벅찹니다...

그래서 Firebase에 있는 인증(Auth)기능을 이용해보려고 합니다.

 

서론이 길었네요

 

사전작업 : 코코아팟을 이용하여 Firebase/Auth를 설치

https://katarnios.tistory.com/23

 

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

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

katarnios.tistory.com

 

간단한 설정부터 시작해보도록하죠.

Firebase의 기본설정이 되어있으신 분들은 "더보기"버튼을 누르지 마시고 진행하시면 됩니다.

Firebase가 처음이신 분들은 바로 아래 "더보기"버튼을 눌러주세요.

더보기

파이어베이스 홈페이지에 들어갑시다.(https://console.firebase.google.com/project/_/authentication/users)

그 뒤는 이미지로 알려드릴게요~

 

여길 보시면 다양한 기능들이 있습니다.

오늘은 인증만 다루지만 조만간 나머지도 올리겠습니다!!! 반드시!!

 

 

자 이제 인증하기위한 프로젝트 등록은 끝났습니다.

이제 iOS앱을 추가하겠습니다.

이건 iOS뿐만 아니라 안드로이드 등 다른 것들도 추가할 수 있다는 거죠ㅎㅎ

 

이제 앱으로 돌아가서 AppDelegate를 열어줍니다. 그리고 아래처럼~

 

그러면 이제 파이어베이스가 작동은 하는데... 아직 설정이 더남았습니다ㅎㅎ

포기하지마세요. 힘냅시다.

 

홈페이지에 다시 돌아가서 아래 인증 콘솔로 들어가봅시다.

 

저희가 할 수 있는 로그인방법이 12가지나 있습니다.

여기에 없는건 파이어베이스를 통해서가 아닌 자체 sdk를 이용하면 됩니다.

 

저희는 오늘 이메일/비밀번호를 이용한 로그인을 해보겠습니다.

 

이제 간단한 UI를 만들고~(글이 길어져서 생략할게요. 원하시면 댓글 남겨주세요. 추가해둘게요)

 

이렇게 만들었습니다.

1. 회원가입

이제 다음버튼을 누르면 아이디와 비밀번호를 이용하여 회원가입을 해보겠습니다.

import FirebaseAuth

Auth.auth().createUser(withEmail: email, password: password) {[weak self] authResult, error in
            guard let self = self else { return }
            
            if let error = error {
                let code = (error as NSError).code
                switch code {
                case 17007: //이미 가입한 계정
                    //로그인 로직 추가(예정)
                default:
                    self.errorText.text = error.localizedDescription
                }
            }
        }

 

에러코드(17007)는 저희가 정하는게 아니라 파이어베이스에서 제공하는 코드이기 때문에 정해져있습니다.

제가 임의로 설정한것은 아닙니다.

이렇게 하면 파이어베이스에 계정이 생성됩니다ㅎㅎ..

2. 로그인

이번엔 위에서 17707코드일 경우 로그인이 되는 로직을 만들어봅시다.

import FirebaseAuth

Auth.auth().signIn(withEmail: email, password: password) {[weak self] _, error in
    guard let self = self else { return }

    if let error = error {
        self.errorText.text = error.localizedDescription
    } else {
        self.showMainViewController()
    }
}

 

위에서도 에러메시지를 적용하였었는데 이번엔 에러메시지도 보여드릴게요.

아래 메시지는 이메일 유형이 아니라서 뜬 메시지입니다.

파이어베이스 인증에서 이런것들도 이용가능하니 편하네요.

 

3. 로그아웃

이번엔 로그아웃입니다.

import FirebaseAuth

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

예외처리 (throws, do-catch, try) 를 이용했습니다.

그리고 Auth.auth().signOut()을 이용하여 로그아웃 처리 했습니다.

 

4. 암호재설정(이메일로 링크보내기)

암호재설정을 누르면 아이디인 이메일로 재설정 링크를 보냅니다.

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

 

5. 회원정보 수정

간단하게 만들기 위해 변하게될 프로필을 코드에 포함시켰습니다.

import FirebaseAuth

let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
changeRequest?.displayName = "KataRN"
changeRequest?.commitChanges { _ in
  let displayName = Auth.auth().currentUser?.displayName ?? Auth.auth().currentUser?.email ?? ""
  self.welcomeLabel.text = "환영합니다.\n\(displayName)님"
}

 

여기까지가 Firebase / Auth를 이용한 기본 이메일 로그인, 로그아웃, 암호재설정, 회원정보수정 이었습니다.

 

다음 글에서는 구글로그인, apple로그인을 알아보겠습니다.

https://katarnios.tistory.com/46

 

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

안녕하세요. KataRN입니다. 저번에 알아봤던 이메일 로그인 구글로그인을 알아보겠습니다. 우선 저번시간에 알려드림 기본적인 세팅과 이메일 로그인은 아래 링크를 참고해주세요. https://katarnios.

katarnios.tistory.com

https://katarnios.tistory.com/47

 

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

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

katarnios.tistory.com

 

 

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

반응형