본문 바로가기
사이드 프로젝트/Spring Boot

[login] access Token 과 refresh Token 차이점

by 코딩맛집 2022. 12. 14.

JWT(JSON Web Token)

유저를 인증하고 식별하기 위한 토큰이다. 토큰은 세션과 달리 서버가 아닌 클라이언트에 저장된다.

 

access Token & refresh Token 공통점

access Token과 refresh Token 은 JWT 형태로 같다. 

 

access Token의 특징

access Token은 refresh Token보다 유효기간이 짧다.

WHY? 그 이유에는 refresh Token을 왜 사용하는지에 대한 답변이 된다.

access Token은 그 자체로 인증 정보를 모두 가지고 있어 탈취당할 경우 정보 유출로 인해 보안에 취약하기 때문이다. 

작자는 로그인 기능을 springBoot, react와 redux를 사용하여 구현하였고 access Token을 Redux Store에 저장했다.

 

refresh Token의 특징

access Token을 재발급받을 수 있는 토큰이다. 작자는 refresh Token을 쿠키에 저장하였고 access Token을 헤더에 실어 요청을 보냈다. 브라우저의 로컬스토리지는 편리하지만 XSS를 방어할 수 있는 방법이 없기 떄문에 로컬스토리지보다는 쿠키가 조금 더 보안에 덜 취약하다. 단, 이 쿠키가 Http Only이며 Secure(https)옵션이 켜져있을 경우에만 적합하다.