React] 프로젝트 버그 수정하기 (스테픈2km)

image.png

오늘은 그간 작업했던 프로젝트가 끝났다고 생각해서

디플로이 이후에

큰 버그를 발견했네요

image.png

로그인 페이지에 있는 버그인데요

저도 전혀 눈치 못챘다가

사이트 테스트를 하다보니 알게되었습니다

image.png

로그인을 하게되면

로그아웃도 할수가 있겠죠?

카카오나 admin계정으로 접속도 해봤을때 문제는 없었으나

문제는 로그아웃 하고 다른 계정으로 접속할때 발생했습니다

로그인 버튼만 눌러도 바로 로그인이 되어버리는 문제인거죠

처음에는 이게 뭐지? 싶어서 제가 프론트쪽 코드를 잘못 짰나 싶었습니다

image.png

일단 로그인할때 코드를 훓어보면

로그인을 하게되면 유저의 아이디를 표시해주는 변수에 값을 저장하고

로그인 했다는곳에도 저장하고

어떤 방식으로 로그인 했는지도 저장합니다

그리고 유저의 로그인 정보 전체를 store를 사용해서 저장합니다

setaccoutp 라는 함수가 바로 유저의 개인정보를 통으로 저장하는 곳이죠

이러한 방식으로 로그인을 프론트쪽에서 진행한뒤

image.png

추후에 로그아웃을 시도하게되면

어떤 방식으로 로그인을 했는지 앞서 setloginstate라는 함수로 store에 저장한 값을

가져와서 해당 값이 카카오톡이면 카카오쪽으로 로그아웃정보를 보내고

프론트 쪽에 회원로그인할때 처리했던 변수들에 값들도 전부 리셋 시킵니다

네이버도 똑같은 방식으로 처리하구요

image.png

스토어에 로그인 관련 정보로 저장하는 데이터들...

만들때는 처음에 생각의 흐름대로 만들다보니..

코드 리펙토링 하게되면 객체 형식으로 변경하던 해서 하나로 묶는것도 괜찮을것 같네요..

아무튼 이러한 과정으로 로그아웃을 하는데도 불구하고

한번 로그인 이후에 로그아웃하고 다시 로그인하면

기존 아이디로 계속 로그인되는 버그가 생기는것입니다.

프론트 쪽에서 잘못한건 아닌가 싶어서

프론트쪽 코드에만 계속 조건넣고 테스트 하다가...

딱히 틀린게 없나 싶어 서버쪽 코드를 열어봤습니다

image.png

생각해보니 로그인할때 정보를 주는건 있는데

로그아웃에 관한 api를 만들진 않았더군요;;

여기서 드는 의문이 로그인정보를 담은 변수를 가지고 있는 서버가

프론트에서만 로그아웃 이후에 다시 서버에 로그인요청이 왔을때

기존에 가지고 있는 정보를 그냥 계속 주는게 아닌가 싶은 의심이 들더군요

그래서

image.png

회원정보를 담아서 보내주는 이 변수의 값을

서버 쪽에서도 로그아웃이라는 api를 만들고

로그아웃 요청시 회원정보를 담아둔 저 변수의 값을 리셋시키는거로

변경했습니다

image.png

그리고 프론트 쪽에도

image.png
로그아웃 할때 서버에 로그아웃 요청을 한번더 보내주는 방식으로 코드를 수정했습니다

image.png

결론은 잘되네요

로그인 이후 로그아웃하고 다른아이디로 로그인해도

문제가 발생하지 않습니다

어제부터 프론트쪽 문제인가 싶어서

프론트 쪽의 코드만 계속 좀더 타이트하게 조건걸고 했더니..

코드가 지저분해졌지만..

결과적으로는 원인을 찾았다는것에 만족스러운 하루였습니다

이로서 간단한 로그인 로그아웃 처리는 끝냈습니다.


스테픈도 2km완료했습니다 오늘은 좋네요

image.png

Sort:  


안녕하세요 스팀잇 코리아팀입니다.
스팀잇 코리아팀이 보다 나은 서비스를 제공하기 위해서 협의체로 진화를 하고 자합니다. 자세한 내용은 아래의 포스팅을 참고해주세요

스팀잇 발전을 위해서 한국협의체 회원이 되어 주세요

스팀잇코리아가 현재 하고 있는 일은 다음과 같습니다
-스팀 증인 노드
-스팀잇 좋은글 추천 서비스
-스팀 오토 시스템(보팅 및 포스팅)
-공익사업 (support-kr/goodpost-kr/booming-kr)
-스팀 페스트 코리아 주관

향후 한국협의체로 발전하여 추가 사업으로 확대 운영할 예정입니다.
-스팀 재단과 직접 커뮤니케이션을 통한 한국 스티미언 보이스 전달
-스팀 관련 공익 Dapp/App 개발 지원 및 개발자 육성
-스팀잇 유저 확대를 위한 전방위적 스팀잇 홍보
-kr 커뮤니티 내 의사조정자 역할
-컨텐츠 발굴을 위한 지원 사업
-기타 스팀 가치 제고를 위한 여러 활동

해당 활동은 새롭게 만들어지는 한국협의체의 방향에 따라 일부 변경 될 수 있습니다.

해당 포스팅은.... 딱 3일간만 홍보하겠습니다. 죄송합니다! 블록체인 스팀잇의 주체는 재단이 아닙니다. 스팀에 투자하고 스팀잇 활동을 하는 우리 모두가 주체가 됩니다. 모두 힘을 모아서 발전 할 수 있는 스팀잇을 위해 노력합시다 도와주세요

Coin Marketplace

STEEM 0.12
TRX 0.34
JST 0.033
BTC 119956.46
ETH 4439.59
SBD 0.79