<aside> πŸ’‘ JSON Web Tokens are an open, industry standard [RFC 7519]

method for representing claims securely between two parties.

JWTλŠ” μ›Ήν‘œμ€€(RFC 7519)μœΌλ‘œμ„œ 두 κ°œμ²΄μ—μ„œ JSON 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ 가볍고 μžκ°€μˆ˜μš©μ μΈ λ°©μ‹μœΌλ‘œ 정보λ₯Ό μ•ˆμ „μ„± 있게 μ „λ‹¬ν•΄μ€λ‹ˆλ‹€.

</aside>

https://jwt.io

JWTλŠ” . 을 κ΅¬λΆ„μžλ‘œ 3κ°€μ§€μ˜ λ¬Έμžμ—΄λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

aaa.bbb.ccc 의 ꡬ쑰둜 μ•žλΆ€ν„° 헀더(Header), λ‚΄μš©(payload), μ„œλͺ…(signature)으둜 κ΅¬μ„±λ©λ‹ˆλ‹€.

0.png

헀더 (Header)

{
	"typ" : "JWT",
	"alg" : "HS256"
}

λ‚΄μš© (payload)

payload λΆ€λΆ„μ—λŠ” 토큰을 담을 정보가 λ“€μ–΄μžˆμŠ΅λ‹ˆλ‹€. μ •λ³΄μ˜ ν•œ 쑰각을 ν΄λ ˆμž„(claim)이라고 λΆ€λ₯΄κ³ , μ΄λŠ” name/value 의 ν•œ 쌍으둜 이루어져 μžˆμŠ΅λ‹ˆλ‹€. ν† ν°μ—λŠ” μ—¬λŸ¬κ°œμ˜ ν΄λ ˆμž„λ“€μ„ 넣을 수 μžˆμ§€λ§Œ λ„ˆλ¬΄ λ§Žμ•„μ§ˆκ²½μš° ν† ν°μ˜ 길이가 κΈΈμ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

ν΄λ ˆμž„μ˜ μ’…λ₯˜λŠ” 크게 3λΆ„λ₯˜λ‘œ λ‚˜λˆ„μ–΄μ§‘λ‹ˆλ‹€.

1. λ“±λ‘λœ (registered) ν΄λ ˆμž„

λ“±λ‘λœ ν΄λ ˆμž„λ“€μ€ μ„œλΉ„μŠ€μ—μ„œ ν•„μš”ν•œ 정보듀이 μ•„λ‹Œ, 토큰에 λŒ€ν•œ 정보듀을 λ‹΄κΈ°μœ„ν•˜μ—¬ 이름이 이미 정해진 ν΄λ ˆμž„λ“€μž…λ‹ˆλ‹€. λ“±λ‘λœ ν΄λ ˆμž„μ˜ μ‚¬μš©μ€ λͺ¨λ‘ 선택적(optional) 이며, 이에 ν¬ν•¨λœ ν΄λ ˆμž„ 이름듀은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.