-
[우리어디가] - Swift Firebase 인증(Authentication)사용법프로젝트/우리어디가 2023. 3. 10. 20:12728x90반응형
오늘은 Firebase에서 제공하는 라이브러리 중에 사용자 인증에 꼭 필요한 auth를 알아볼 것이다.
우리가 로그인을 하고 회원가입을 하기 위해서는 인증이라는 절차를 밟아야 한다. 원래는 API를 개발하여 로그인 세션 관련된 내용을 구현해야 하지만 친절하게 구글에서 이러한 라이브러리들을 제공한다.
일단 오늘은 로그인,회원가입,로그아웃 이 3가지를 설명하겠다.
회원가입
3개 중에 가장 먼저 해야하는 회원가입이다.
화면에서 사용자의 회원정보를 받아서 firebase 유저정보 리스트에 추가를 해야한다.
회원가입을 하게 되면 이런식으로 유저들의 리스트를 볼수 있다.
회원가입은 createUser라는 메서드를 사용하는데, email,password,가 필요로 하다.
나는 추가로 이름도 함께 사용하기로 해서 createUser를 사용하는 메서드를 새로 만들었다.
func register(email:String,name:String,password:String){ Auth.auth().createUser(withEmail: email, password: password) { result, error in //회원가입 if let error = error{ print("회원가입에 실패했습니다. 에러명 : \(error)") return } guard let user = result?.user else{ return } //유저정보가 비어있다면 반환 //action //유저 회원가입 정보 로그인 여부에 전달 let data = ["email":email,"name":name,"password":password,"uid":user.uid] //회원가입 정보를 데이터에 저장 Firestore.firestore().collection("user") //"user" 데이터베이스에 저장 .document(user.uid) //문서명 유저.uid로 설정 .setData(data) { _ in //데이터 저장 시 변경 사항 print("DEBUG : 유저정보가 업로드 되었습니다. 프로필 사진 변경") } } }
요청을 하고 받은 응답 데이터에 대해 에러 처리를 하고 유저정보를 받는다 여기서 result의 타입은
음.. 이렇다고 한다. 다 처음 보는것이지만 firebase 개발 문서를 참고하면 좋을 것이다.
딕셔너리를 하나 만들어서 본인이 회원가입에 필요한 정보에 대한 정보를 firestore에 저장한다.
컬렉션을 지정하고 유저의 정보를 저장할 문서를 만들어서 관리한다.
로그인
로그인도 별로 다를건 없다. signIn 메서드도 마찬가지로 같은 파라미터와 반환형태를 가진다.
func login(email:String,password:String){ Auth.auth().signIn(withEmail: email, password: password){ result, error in if let error = error { print("로그인 실패 \(error)") return } guard let user = result?.user else{ return } //유저정보가 비어있다면 반환 print("로그인 성공 \(user)") } }
위와 거의 동일하기에 굳이 설명은 필요하지 않을 것같다.
로그아웃
로그아웃은 아주 심플해서 놀랐다.
throws로 오류를 던지기 때문에 catch를 사용하여 받아야한다.
하지만 로그아웃 성공여부로 이벤트를 나누고 싶지 않기 때문에 그냥 try?를 쓰기로 했다.
func logOut(){ try? Auth.auth().signOut() print("로그아웃됨") }
오늘은 인증 부분을 사용해 보았다. 처음에 이걸 보고
"에이 사용자 인증 별것도 아니네"라고 생각했는데 백엔드 개발자와 프로젝트를 진행 해보니 내 생각은 다~ 거짓말이였던거 아시죠..?가 되었다..'프로젝트 > 우리어디가' 카테고리의 다른 글
[우리어디가] - 2번째 리젝 (0) 2023.12.05 [우리 어디가] - 1번째 리젝 (0) 2023.12.05