JWT는 기본적으로 두 가지 토큰을 사용합니다.
※ Access Token
-
API 요청을 허가하는데 사용합니다.
-
리소스에 직접 접근할 수 있도록 해주는 정보만을 가지고 잇습니다. 즉 클라이언트는 Access Token이 있어야 서버 자원에 접근할 수있습니다.
-
짧은 수명을 가지며 만료기간을 갖습니다.
※ Refresh Token
-
새로운 Access Token을 발급받기 위한 정보를 갖습니다. 즉 클라이언트가 Access Token이 없거나 만료되었다면 Refresh Token을 통해 Auth Server에 요청해서 발급받을 수 있습니다.
-
만료기한이 있지만 깁니다.
-
Refresh Token은 중요하기 때문에 외부에 노출되지 않도록 엄격하게 관리해야 하므로 주로 데이터베이스에 저장합니다.
※ JWT 토큰 재발급 로직
최초 발급시 Access Token과 Refresh Token 을 발급합니다. 그 후 Access Token으로 API를 사용하다가 만료시간이 지나면 만료시간을 길게 준 Refresh Token을 이용해서 Access Token을 재발급 합니다.
클라이언트가 토큰의 만료시간을 알 수 있기 때문에 클라이언트에서 판단하여 만료시간이 넘었으면 토큰 재발급을 요청하거나 TokenExpiredError가 발생했을 때 재발급해주는 것입니다.
'플밍 is 뭔들 > 그 외..' 카테고리의 다른 글
JPA에서 @Repository에서 쿼리를 사용할 떄 주의할 점 (0) | 2019.07.03 |
---|---|
ORM과 JPA에 관하여 (0) | 2019.07.03 |
[JWT] JSON Web Token - 서버기반/토큰기반 인증의 차이와 JWT의 장단점 (0) | 2019.07.03 |
[JWT] JSON Web Token JWT Process (0) | 2019.07.03 |
[JWT] JSON Web Token 소개 및 구조 (0) | 2019.07.03 |