파이어베이스 리액트 프로젝트 #5

해기·2022년 12월 22일
0

저번시간에 이어서 회원가입 마무리짓고

로그인기능까지 만들어보자

일단 저번시간 회원가입에 이름넣기 에러

유저의 이메일과 비밀번호는 제대로 전송이됐었는데
이름까지 넣으려니 에러가났었다.

나는 당연히 이름,이메일,패스워드 순으로 보내는줄 알았는데
createUserWithEmailAndPassword(이메일,비밀번호)를
보내고 그 안에 성공했을 때
then((res)=>{
이곳에서 이름을 보내는것이였다.
})

최종코드는 그래서

이렇게 제작이되었다.

페이지에서도 실행해본결과로

콘솔창에 이렇게 displayName에 쿠크다스 이메일 잘 들어가있는걸 볼 수 있었다.

파이어베이스에도 잘 넘어왔다.

이제 이걸가지고 로그인 기능까지 만들어보자

로그인기능 만들기

일단 리액트라우터로 회원가입창과 로그인창을 분리시킨 뒤 작업해보도록하겠다.

대충 이러한 로그인창을 만들고 시작해보겠다.

일단 파이어베이스 로그인할 함수를 알아보면

firebase.auth().signInWithEmailAndPassword(이메일, 비밀번호)

위 코드처럼 회원가입할때처럼 굉장히 긴 함수가 필요하고
그 안에 유저의 이메일과 비밀번호를 넣어주면된다.
아마 저기 집어넣는 이메일과 비밀번호가 파이어베이스에 똑같이 존재하는지를 확인한 뒤 로그인을 시켜주지않을까?

한번 실험해보기로했다.

위의 코드는 일단 자바스크립트에서 적용하는 코드이고
리액트에서 사용중이라 살짝다르다.

이메일과 비밀번호값을 받아와서 저 함수안에 넣어야하니까
onChange이벤트와 state를 사용해서 또 한번 만들어보겠다.

당연하게도 이메일과 비밀번호값을 받아오는건 여태 했던것과 동일하다.

여태 했던것의 반복이라 굳이 넣을 필욘없지만 넣어봤다.

이제 저 값을 가지고 로그인을 진행해보면되지않을까싶다.

loginBtn이라는 함수를 하나 만들어서

파이어베이스 로그인함수를 넣어주고
이메일과 비밀번호값을 저렇게넣어줬다.

이제 테스트를 해보면될거같은데 성공했을 때 에러창이뜨게끔
해보면 쉽게 알 수 있지않을까.

여태 막만들었던 회원정보들을 기억을못해서 대충하나 만들어서 시험해봤다. 로그인성공이 뜨는걸보니 성공은한거같다.
이제 아무런이메일이나 비밀번호를 넣었을 때 실패도 뜨는지 보고싶다.

실패가 나온다.

뒤에 catch로 실패했을 때 경고창을 띄워주게끔 만들어줬는데 이것또한 제대로 작동한다.

이제 이 로그인한 값을가지고 로그인이 되어있는 사람만 글을 작성할 수 있게끔 만들고 프로필설정같은것도 할 수 있지않을까 싶다.

그런데 로그인이있으면 로그아웃도 있어야

로그아웃기능도 구현을 해줘야할거같아서 미리만들어주겠다.

지금은 로그인됐을 때 로그인상태 라는걸 가져오는 방법은 모르기에 그냥 로그아웃이라는 버튼을 만들어두고 거기에 기능만 구현해두기로했다.

헤더안에 로그아웃버튼을 만들어줬다.

누르면 로그아웃성공이 뜬다.

로그인한 상태를 가져올 방법을 찾아보면되겠다.

profile
프론트엔드 개발 공부중, 글쓰는데 재주가없음

0개의 댓글