Day 35 · 2/5
🌿 중급 백엔드

리프레시 토큰이 뭔가요?

쉽게 이해하기

놀이공원 자유이용권이 낮 12시까지만 유효한데, 손목에 찬 특별 팔찌를 보여주면 오후권으로 바로 교환해주는 것과 비슷해요. 매번 매표소에 가서 다시 티켓을 살 필요 없이, 팔찌만 보여주면 되는 거죠.

핵심 정리

리프레시 토큰은 액세스 토큰이 만료됐을 때 다시 로그인하지 않고도 새 토큰을 받을 수 있게 해주는 특별한 토큰이에요.

자세히 알아보기

로그인할 때 보통 두 가지 토큰을 받아요. 액세스 토큰과 리프레시 토큰이죠. 액세스 토큰은 실제 API 요청에 사용하는데, 보안을 위해 유효기간이 짧아요. 보통 15분~1시간 정도예요. 반면 리프레시 토큰은 유효기간이 길어요. 며칠에서 몇 주까지도요. 액세스 토큰이 만료되면 서버는 401 에러를 보내요. 이때 프론트엔드는 리프레시 토큰을 서버에 보내서 새 액세스 토큰을 받아요. 사용자는 이 과정을 전혀 모르죠. 그냥 계속 앱을 쓰고 있을 뿐이에요. 왜 이렇게 복잡하게 할까요? 보안 때문이에요. 액세스 토큰이 탈취당해도 금방 만료되니까 피해가 적어요. 리프레시 토큰은 더 안전한 곳(httpOnly 쿠키 등)에 저장하고, 탈취 감지 시스템도 적용할 수 있어요. 실무에서는 보통 액세스 토큰은 메모리나 로컬 스토리지에, 리프레시 토큰은 httpOnly 쿠키에 저장해요. 리프레시 토큰도 탈취당하면 즉시 무효화시킬 수 있는 시스템을 만들어요. 이렇게 이중 보안 체계를 만들면 사용자는 편리하게 로그인 상태를 유지하면서도 보안은 강화할 수 있어요.