[Spring] Spring Security + JWT Token

DreamJJW·2023년 9월 20일

공부 노트

목록 보기
7/18

JWT Token

JWT(Json Web Token)은 일반적으로 클라이언트와 서버 통신 시 권한 인가(Authorization)을 위해 사용하는 토큰이다.

세션을 서버에 저장해야하는 비효율적인 쿠키-세션 방식의 로그인을 대체할 수 있는 방식이다.

토큰을 통해 로그인이 이루어진 과정은 다음과 같다.

  1. 사용자가 계정 정보(ID 및 Password)를 사용하여 로그인 시도.
  2. 해당 정보를 받은 서버는 DB를 조회에 등록된 사용자인지 확인.
  3. 등록된 사용자라면 Access Token과 Refresh Token을 함께 발급해준다.
  4. 로그인 이후 사용자가 데이터를 조회(API 발송)한다면 발급받은 토큰을 실어서 보낸다.
  5. 해당 토큰이 검증되었다면 인가해준다음, 요청받은 데이터를 보여준다.

Access Token과 Refresh Token

여기서 사용자에게 발급해준 Access Token에는 모든 인증 및 인가 정보가 담겨있으므로 중간에 탈취당하면 보안상 위험하다. 때문에 Access Token에는 유효기간이 있고, 그 기간이 지나면 자연스레 폐기된다.
Refresh Token은 그렇기에 Access Token의 기간이 만료되었을 때, Access Token을 재발급 받기 위해 사용한다. 그러므로 보통 Refresh Token은 Access Token에 비해 긴 유효기간을 가지는 편이다.

profile
간절한 사람

0개의 댓글