본문 바로가기
기록/etc

[JWT] Refresh Token, Access Token 의 차이점과 사용 이유

by 자임 2022. 6. 21.

JWT(JSON Web Token) :

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

 

 

 

Access Token & Refresh Token


Refresh Token은 Access Token과 똑같은 형태의 JWT이다. Refresh Token은 긴 유효기간을 가지면서, Access Token이 만료됐을 때 새로 발급해주는 열쇠가 된다.

예시) Refresh Token의 유효기간은 2주, Access Token의 유효기간은 1시간이라 하겠습니다. 사용자는 API 요청을 신나게 하다가 1시간이 지나게 되면, 가지고 있는 Access Token은 만료됩니다. 그러면 Refresh Token의 유효기간 전까지는 Access Token을 새롭게 발급받을 수 있습니다. 

사용자는 Refresh Token은 안전한 저장소에 저장 후, Access Token을 헤더에 실어 요청을 보냅니다.

 

 

 

Refresh Token 을 사용하는 이유

 

Access Token을 통한 인증 방식의 문제는 만일 제 3자에게 탈취당할 경우 보안에 취약하다는 점입니다.

 

refresh_token은 서버에 저장되기 때문에(stateful) refresh token이 해커에 의해 탈취당했다고 판단되었을 때 서버에서 refresh token을 삭제함으로써 강제 로그아웃을 시킬 수 있다.


access token은 보안적으로 취약하니 2시간 정도로 짧게 가져가고, refresh token은 처리 비용이 많이 들기 때문에 2주 정도로 길게 가져가는 방식을 주로 사용한다.

 

 

 

출처 :

https://tansfil.tistory.com/59

 

쉽게 알아보는 서버 인증 2편(Access Token + Refresh Token)

안녕하세요! 이전 포스팅에는 크게 세션/쿠키 인증, 토큰 기반 인증(대표적으로 JWT)에 대하여 알아보았습니다. 저희가 앱, 웹 혹은 서버 개발을 하면서 꼭 사용하게 되는 인증(Authorization)은 아주

tansfil.tistory.com

https://tecoble.techcourse.co.kr/post/2021-10-20-refresh-token/

 

refresh token 도입기

❗ SSR 상에서 refresh token을 도입하면서 느낀 것들을 작성한 글입니다. ❗ SSR에서 로그인이 어떻게 이루어지는지 궁금하시면 여기를 참고해주세요! 도입 계기 - 2시간이 지나면 로그인이 풀린다!

tecoble.techcourse.co.kr

 

 

 

 

+ 아래 글에서 리프레시 토큰 사용에 대해 토론을 한 것 같은데 아직은 못 알아듣는 말이 절반이 넘지만.. 기록.

 

refresh token 을 사용하는 이유
한 번 발급되면 정보가 변하지 않는 stateless라는 jwt 특성 때문에 refresh token을 사용하여 access token을 발급한다. refresh token이라는 방어 도구라도 있어야 서버가 해킹된 토큰에 대한 방어 행동을 취할 수 있게 된다 입니다.
https://okky.kr/article/1007579

 

OKKY | 리프레쉬 토큰이 필요한 이유는 무엇인가요?

보통 짧은 만료시간을 가지는 엑세스 토큰이 만료될 경우, 새로운 엑세스 토큰을 발급 받기위해 리프레쉬 토큰을 사용한다. 라고 설명하는 것 같습니다. 하지만 리프레쉬 토큰 자체가 탈취 당할

okky.kr

 

'기록 > etc' 카테고리의 다른 글

정규식 테스트해볼 수 있는 사이트  (0) 2022.10.28
PostMan 이용해 Post 쿼리 테스트하는 방법  (0) 2022.09.02
CUI vs GUI  (0) 2022.05.30
공인IP 주소 확인하는 방법  (0) 2022.05.24
VMware Take Ownership 오류 해결방법  (0) 2022.05.24