Skip to content

[Clone/Instagram] 로그인 기능 구현 | 복습 & 새롭게 알게된 개념 #6 #19

@SHcommit

Description

@SHcommit

Login, Logout기능 구현

구현 영상

강의와는 다르게

  • 회원가입 진행완료시에 파베에 업로드하는 과정이 시간이 걸리고 로그인 시에도 대기시간이 있어서 간단하게 인디케이터로 과정을 표시했다.

  • 회원가입을 해도 로그인을 직접 해야만 인스타그램 계정이 활성화 되도록 했다.

  • 매인 홈 뷰(first vc == Feed Scene)에서 파이어베이스의 최근 유저 auth가 없을 경우에 로그인 화면으로 presnt 되는데 이 과정에서 이미 만들어져 있는 Feed Scene가 보인 후에 로그인 Scene가 present됬다. 추가적인 처리를 해서 Feed Scene가 보이도록 구현했다.

약간 의아했던 점은 강의 보기전에 난 로그아웃시에 로그인 기능을 Auth.auth.signIn(withEmail:email:password:) 을 바로 로그인 컨트롤러의 로그인에 현재 동적으로 바인딩된 vm을 이용해서 로그인 기능을 구현했는데 강의에서는 굳이,,?
Auth.auth.signIn(withEmail:email:password:) 이 메서드를 한번 감싸서 AuthService 클래스 함수로 구현해줬다.

새로 알게된 개념

초기에 사용자 회원가입을 할 때 Auth.auth()의 createUser함수를 통해 firebase의 Authentication 에 email, password를 등록하고 UID를 부여받았다. 이 덕에 파이어베이스에는 사용자의 이메일과 비번 그에따른 유일한 식별자 UID를 Authentication에 저장한다. UID를 통해 Firestore DB 컬랙션의 문서를 식별이 가능하고 필드값도 얻을 수 있다. (파이어베이스를 써서,, 상당히 간편했다. 백엔드의 입장에서 나중에 배워보고싶은 마음이 들었다.)

이 때문에 Auth.auth() 를 통해서 signIn할수도, signOut을 할 수 있다. 그리고 signIn을 한 경우 Auth에 특정 식별자가 기록이 되는 것 같다. 이 정보는 Auth.auth().currentUser를 통해 확인할 수 있다. 앱을 종료했다가 다시 실행해도 Auth에 저장된 currentUser는 Auth.auth().signOut()를 하기 전까지 계속해서 유지 된다.

// 추가로 구현해야할것

  • 간단한 커스텀 알림창

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions