jwt는 직접 지정한 만료기간이 지나기 전까진 고의적으로 파기할 수가 없음

JWT 기본

전자 서명된 URL-safe (URL로 이용할 수 있는 문자만 구성된)의 JSON

Header

{
 	"alg": "서명 시 사용하는 알고리즘",
	"kid": "서명 시 사용하는 키를 식별하는 값",
	"typ": "타입"
}

JWT를 어떻게 검증하는지에 대한 내용이 들어감

Payload

{
	"sub": "hyeonsu.jung",
  "exp": 1623235123,
  "iat": 1532341234
}

토큰에 담아서 보내고자 하는 데이터가 이곳에 담김

이 정보의 조각은 claim이라 함

여러 개의 클레임을 담을 수 있고, 공개(public) 혹은 비공개(private)할 것인지 등록(registered)할 것인지 결정 가능

Signature

위의 헤더와 페이로드를 합친 문자열을 서명한 값

헤더의 alg에 정의된 알고리즘과 secret key를 이용해 생성하고 Base64 URL-Safe로 인코딩

잠깐, 공개 키(public key)와 비밀 키(secret key)

Access Token & Refresh Token

access token만을 이용한 인증 방식의 문제는 제 3자에게 탈취당할 경우 보안에 취약