Day 36 · 3/5
🌿 중급 백엔드

리프레시 토큰은 왜 필요한가요?

쉽게 이해하기

호텔 키카드가 24시간만 유효하지만, 프론트에서 쉽게 재발급받을 수 있는 것처럼, 리프레시 토큰도 짧은 유효기간의 액세스 토큰을 자동으로 갱신해줍니다.

핵심 정리

리프레시 토큰은 사용자가 자주 로그인하지 않아도 되면서, 보안도 유지할 수 있게 해주는 장치입니다.

자세히 알아보기

웹사이트에 로그인하면 보통 두 개의 토큰을 받습니다. 액세스 토큰과 리프레시 토큰이죠. 액세스 토큰은 실제로 API 요청할 때 쓰는데, 보안을 위해 유효기간이 짧아요(보통 15분~1시간). 리프레시 토큰은 이 액세스 토큰이 만료됐을 때 새로 발급받기 위한 용도입니다. 만약 리프레시 토큰 없이 액세스 토큰만 있다면 두 가지 문제가 생깁니다. 토큰을 오래 쓰게 하면 탈취당했을 때 위험하고, 짧게 하면 사용자가 계속 로그인해야 해서 불편하죠. 리프레시 토큰은 이 두 마리 토끼를 다 잡는 방법입니다. 실무에서는 액세스 토큰이 만료되면 프론트엔드가 자동으로 리프레시 토큰을 사용해 새 액세스 토큰을 받아옵니다. 사용자는 이 과정을 전혀 느끼지 못하죠. 리프레시 토큰은 보통 2주~1개월 정도 유효하며, 이것마저 만료되면 그때 다시 로그인하면 됩니다. 리프레시 토큰은 보통 HttpOnly 쿠키에 저장해서 JavaScript로 접근할 수 없게 하고, 액세스 토큰은 메모리나 로컬 스토리지에 저장하는 게 일반적인 패턴입니다.