[zaranara.03] 로그인& 로그아웃

seul3·2021년 12월 11일
0
post-thumbnail




프로젝트 진행을 하면서 회원가입&로그인을 하면서 예기치 못한 문제가 발생했다.

분명 로그인을 하고 success가 되면 토큰 발행이 되고 이것을 localStorage에 저장이 되는거까지 확인을 했는데 새로고침을 하면 로그아웃은 되어있고 토큰은 그대로인 기이한 현상이 발생했다ㅋㅋㅋ
(TMI인데 이 상황이 너무 웃겼다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ)




일단 생각하지도 못한 부분이라 당황스러웠는데 대체 왜 그렇지 하고 로직을 먼저 생각해봤다.

로그인이 되고 로그아웃이 되면 토큰 지우기까지는 생각했지만 새로고침을 하면 react에 그려지는 화면들이 reload가 되면서 토큰은 그대로 유지되고 토큰은 유지되는 것이다.

이것을 해결하기 위해서 일단 작성한 코드를 먼저 확인했다.
보자마자 어디를 해결해야할지 감은 왔다.....



바로 상태 변화값에 기본 조건을 false로 줬기 때문이다.
이렇게 되면 로그아웃 상태에서 버튼을 클릭 했을 때 토큰도 같이 삭제되서 완벽하게 로그아웃이 되어 있겠지만 새로고침을 하면 버튼을 클릭하지 않고 초기 값이 false로 주었기 때문에 기존 토큰은 그대로 유지하고 처음 화면 처럼 reload하게 되고 로그인이 뜨는 것이다.

그래서 상태 변화값에 조건을 주었다.
만약 localStorage에 토큰이 있으면 로그아웃 버튼화를 쭉 유지하게끔 삼항조건을 작성했다.

그러니 해결하였다 :-)




✍✔ 이 글을 작성하면서 또 궁금한것이 생겼다.
대부분 사이트에서는 로그인을 하고 좀 오랜 시간이 지나면 자동 로그아웃이 되어있다. 이것은 localStorage의 차이인지 sessionStorage 차이인지 더 공부해야 하는 부분 같다.

이 부분에서도 정말 고민을 많이 했다. 로컬이냐 세션이냐....
처음에는 음?세션이지! 했다가 팀원들의 이야기를 듣고 로컬로 결정했던 것인데 다음에 내가 맡은 부분에 있어서는 결정할 때 확실한 이유로 결정을 해야할거 같다.



profile
꾸준히 성장하는 개발자 입니다 😊

0개의 댓글