Access Token(JWT 토큰)의 문제점

<aside> 💡 Access Token은 수명이 있다! 만료기간을 늘리면 그만큼 보안에 취약하게 된다.

</aside>

access token은 JWT이므로 그 자체로 인증 정보를 모두 가지고 있어서 탈취되면 매우 위험한 상황이 발생할 수 있다.

Access Token의 문제점 해결 방법

유효기간을 짧게 하면서 새로운 Access Token을 쉽게 발급받을 수 있는 방법이 없을까?

Refresh Token

Refresh Token은 Access Token과 똑같은 형태의 JWT이다. 처음 로그인을 완료했을 때 Access Token과 함께 Refresh Token이 발급되는데 Refresh 토큰은 긴 유효기간을 가진다.

Access Token이 만료됐을 때 Refresh Token이 Access Token을 새로 발급해주는 열쇠가 된다.(여기서 만료라는 개념은 그냥 유효기간을 지났다는 의미)

Access Token + Refresh Token의 조합을 구성하면 기존 Access Token의 경제적인 장점과 Refresh Token의 보안적인 장점을 둘 다 챙길 수 있다.

예시

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

AccessToken + Refresh Token 인증 방식