OAuth 토큰, 어디에 저장할까 (쿠키 vs localStorage)
· 약 3분
로그인 후 받은 토큰을 브라우저 어디에 저장해야 하는지, 선택지별 장단점과 고르는 기준을 정리합니다.
결론부터 말하면, 리프레시 토큰은 HttpOnly 쿠키에, 액세스·ID 토큰은 메모리(또는 짧은 수명의 localStorage)에 나눠 저장하는 것이 안전합니다. 토큰을 한곳에 다 넣지 않는 것이 핵심입니다.
로그인을 붙이면 곧 마주치는 질문이 있습니다. "받은 토큰을 어디에 두지?" localStorage에 넣으라는 글도 있고, 절대 넣지 말라는 글도 있습니다. 정답은 "상황에 따라 다르다"이지만, 고르는 기준은 아래처럼 분명히 정리할 수 있습니다.
먼저, 토큰의 종류

OAuth/OIDC 로그인을 하면 보통 토큰 두세 개를 받습니다.
- 액세스 토큰 / ID 토큰: API를 부를 때 쓰는 토큰. 수명이 짧습니다(보통 분 단위).
- 리프레시 토큰: 액세스 토큰이 만료되면 새로 받아오는 데 쓰는 토큰. 수명이 깁니다.
수명이 긴 리프레시 토큰이 더 민감합니다. 탈취되면 오래 악용되기 때문입니다. 그래서 둘을 같은 곳에 둘지, 나눠 둘지가 핵심 결정이 됩니다.