해결된 질문
작성
·
329
0
로그인 정상 진행되었고 로그아웃 api 요청 시 토큰값 정상적으로 전달하고 있습니다.
api 요청 후 이런 에러가 발생해요
에러가 해결이 안돼서 한번 봐주시면 감사하겠습니다
그리고 만약 logoutUser 정상적으로 동작되면 해당 토큰을 만료시키는 방식인건가요?
강의 이해하기 쉽게 잘 알려주셔서 늘 감사합니다~~
답변 2
0
0
용준님! 안녕하세요!
로그아웃은 브라우저와 백엔드에서 해줘야 할 역할 각각 다르답니다!
먼저 백엔드에서는, logoutUser API를 사용해서 해당 토큰의 만료시간을 조작 하더라도 토큰은 이미 브라우저에 존재하기때문에, 큰 의미가 없을 수 있어요!
따라서, 백엔드에서는 logoutUser로 들어온 토큰을 데이터베이스(레디스 등)에 저장해 놓습니다!
이 토큰들이 모여져 있는 데이터베이스 테이블을 블랙리스트라고 불러요!
그리고, 다음부터 인가를 진행할 때, 인가에 성공하더라도 혹시 이전에 로그아웃한 적이 있는지 블랙리스트를 한 번 더 확인한답니다!
다음으로 브라우저에서는, 아래와 같은 작업들을 진행해 주세요!
recoil에 저장되어있는 accessToken을 없애주는 작업
로그인하고 받아온 데이터들(ApolloClient에 캐시된 서버 데이터들)을 없애주는 작업
=> 해당 로직은 useApolloClient 에서 clearStore() 라는 함수가 제공되고 있어요!
친절한 설명 감사합니다.
덕분에 잘 해결했어요!