Json Web Token
header: 어떤 알고리즘으로 서명했는지 (alg = algorithm)
payload: 내용
signature: 서명. 서명에는 여러가지 방법이 존재함

JWT Encoding/Decoding 사이트
이 3가지를 base64로 인코딩한 것을 연결한 텍스트가 JWT이다.
secret key + payload --- alg (ex. hmac) ---> signature
secret key와 payload를 HMAC 알고리즘의 입력으로 넣으면 그에 맞는 signature이 생긴다.
secret key를 제외한 3가지 baseURL로 변환해 JWT 형태로 클라이언트에게 넘겨주고, secret key는 갖고 있는다.
서버는 JWT에 대한 정보를 갖고 있지 않아도 시크릿 키와 클라이언트에서 준 JWT 정보를 가지고 signature를 만들어 비교함으로써 인증받을 수 있다.
JWT 토큰을 탈취당한 경우, 취약하다. JWT 토큰을 탈취한 사람은 인증을 통과할 수 있게 된다.
Refresh Token이 탈취당한다면?
Refresh Token Rotation! Access Token을 재발급받을 때마다 Refresh Token도 새로 받는 것.
JWT 대충 쓰면 님들 코딩인생 끝남 | 코딩애플
🧐 Access Token과 Refresh Token이란 무엇이고 왜 필요할까? | 김민주 | 김츄의 개발일지
JWT | 생활코딩