[발자국] 웹 프로젝트 (tripmark.co.kr)
[웹 프로젝트] 피드백 적용하기 4 - JWT 토큰 관리 확인
남건욱
2025. 6. 2. 20:24
반응형
문제 정의
피드백 4.
로그인후 창을 두개띄우고 로그아웃시 하나의 창은 채팅이 계속쳐지네요.
개발자모드보니 로그아웃시에 쿠키가없어지던데 프론트에서 jwt토큰을 다루고있는건가요?
해결 방향
토큰 검증 로직 추가
- 로그아웃해도 기존 WebSocket 연결이 끊기지 않아, 다른 탭에서 여전히 채팅 메시지를 보낼 수 있었음
서버에서 WebSocket 세션을 즉시 종료하기 복잡하므로, 메시지 전송 시마다 클라이언트와 서버에서
JWT 유효성을 확인하도록 수정
구현 상세
토큰 검증 로직 추가
탭 두 개로 채팅방을 켰다. 그 뒤 한쪽에서 로그아웃하고 한쪽에서는 채팅을 쳐봤다. 근데 채팅이 전송된다..
그래서 다른 것도 테스트해 봤다. 게시글 작성버튼을 눌렀을 때 로그인이 안되어있다면 작성페이지로 넘어가지 않는다. 이 테스트에서는 정상적으로 작성페이지로 넘어가지 않았다.
따라서 토큰을 제거하거나 로그아웃을 해도 웹소켓 연결이 끊기지 않아서 발생하는 것 같았다. 그래서 클라이언트상에서 메시지를 보낼 때마다 토큰을 체크한 뒤 전송이 되도록 수정했다. 웹소켓 세션을 끊기에는 복잡해질 것 같아서 메시지를 전송할 때마다 토큰검증을 하도록 수정했다.
그 결과 다시 시도했을때 한 곳에서 로그아웃시 정상적으로 에러를 띄우고 메인페이지로 돌아간다.
서버 주소
발자국 - 여행 커뮤니티
당신의 발자국으로 채워가는 여행플랫폼
tripmark.co.kr
테스트 계정 1
ID: test1@gmail.com
PW: !test1234
테스트 계정 2
ID: test2@gmail.com
PW: !test1234
피드백은 항상 감사히 받겠습니다.
OKKY(개발자 지식공유 플랫폼)에서 피드백 받은 내용입니다.
OKKY - All That Developer
OKKY는 국내 최대 개발자 지식공유 플랫폼입니다. 개발자에게 필요한 기술 Q&A, 아티클, 커리어, 네트워킹, 취업, IT행사를 지원합니다
okky.kr
반응형