해결된 질문
작성
·
286
0
강사님 제가 토스페이로 테스트를 진행중에
결제성공 메시지가 나오는데 db에 데이터 변경점이 없어서 확인해보니까 토큰이 만료된 상태더라구요.
토큰 만료됐을때 graphql에서는 unauthorization에러가 나왔는데 html liveServer에서는 따로 알 수 있는 방법 없을까요?
그리고 실제 서비스라면 accessToken이 만료되었을때 자동으로 refreshToken이 accessToken으로 변환되면서 고객이 느낄때는 결제 진행에 아무 무리없는 상태로 표시되나요?
테스트할때는 refreshToken도 직접 요청해서 받아오고 다시 header에 세팅하고 테스트하는거라서 이게 실제 서비스에서는 어떤 로직으로 자동화되는지 궁금합니다.
답변 1
1
안녕하세요! 건태님!
우리가 백엔드 실습을 위해 하나하나 손으로 실습했던 순서를 프론트엔드에서 코드로 자동화한답니다!
예를들면, 라이브서버이던 리액트이던 상관 없이 브라우저에서 api 요청 라이브러리를 사용하여 전송하게 되는데 일반적으로 이러한 라이브러리들에는 모든 요청시 header 추가하기, 모든 요청 실패시 에러 캐치하여 나만의로직 실행하기 등의 기능이 포함되어있어요!
따라서, 이러한 로직에 우리가 백엔드에서 실습했던 순서를 아래와 같이 그대로 등록해 놓는답니다!
api 요청에 실패한 경우 refreshtoken을 던져서 accesstoken을 재발급받고, 재발급 받은 accesstoken으로 방금 실패했던 쿼리를 재요청함으로써 앞단에서 유저는 모르게 뒷단에서 조용히 로그인을 연장시키는 거예요!
이걸 조용한 로그인이라고 하여 silent authentication 이라고 합니다!^^
아 프론트엔드에서 코드 자동화를 할때 사용하는 라이브러리에 header가 추가되어서 전송되는군요! 그러면 그걸 이용해서 token 값도 가져와서 사용할 수 있겠네요. 감사합니다!