Access Token

  1. [사용자] 로그인 요청한다.
  2. [서버] 사용자 확인하고 Access Token와 함께 응답을 보낸다.
  3. [사용자] 이후 요청마다 헤더에 Access Token을 담아 보낸다.
  4. [서버] 요청을 받으면 Access Token이 유효한지 검증하여 처리한다.

⚠️ Access Token이 탈취당할 경우, 공격자가 무제한으로 요청하여 중요 정보에 접근할 수 있다.

✅ Access Token에 만료시간을 둔다.

Access Token에 만료시간 적용

  1. [사용자] 로그인 요청한다.
  2. [서버] 사용자 확인하고 Access Token와 함께 응답을 보낸다. 이때 토큰의 만료시간을 설정한다.
  3. [사용자] 이후 요청마다 헤더에 Access Token을 담아 보낸다.
  4. [서버] 요청을 받으면 Access Token이 유효한지, 만료시간이 지나지 않았는지 확인하여 처리한다.

⚠️ Access Token의 만료시간이 지난 후 사용자가 재로그인해야 한다는 문제가 발생한다.

✅ Access Token의 만료시간이 지났을 경우 Refresh Token을 통해 Access Token을 재발급한다.

Refresh Token 적용

프론트엔드에서 요청 전 Access Token의 만료시간을 확인한다. Access Token의 만료시간이 적게 남았거나 지났을 경우 refresh token을 이용하여 Access Token을 재발급받는다.

  1. [사용자] 로그인 요청한다.
  2. [서버] 사용자 확인하고 Access Token, Refresh Token과 함께 응답을 보낸다. 이때 각 토큰의 만료 시간을 설정한다. Access Token의 만료시간은 짧게, Refresh Token의 만료시간은 상대적으로 길게 설정한다.
  3. [사용자] 이후 요청마다 헤더에 Access Token을 담아 보낸다.