JWT

yjinΒ·2022λ…„ 4μ›” 7일
0
post-thumbnail

JWT(Json Web Token)μ΄λž€?πŸ‘€

  • 인터넷 ν‘œμ€€ 인증 방식
  • 둜그인 정보λ₯Ό DB에 λ”°λ‘œ μ €μž₯ν•˜μ§€ μ•Šκ³  μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•˜λŠ” μˆ˜λ‹¨(μ•”ν˜Έν™”-λ³΅ν˜Έν™”)
  • Header, Payload, Signature둜 κ΅¬μ„±λ˜μ–΄μžˆμŒ

1. Header

-ν† ν°μ˜ νƒ€μž…μ΄λ‚˜, μ„œλͺ… 생성에 μ‚¬μš©λœ μ•Œκ³ λ¦¬μ¦˜μ„ μ €μž₯

2. Payload

-μ‚¬μš©μž λ˜λŠ” 토큰에 λŒ€ν•œ propertyλ₯Ό key-value의 ν˜•νƒœλ‘œ μ €μž₯

iss(Issuer): 토큰 λ°œκΈ‰μž
sub(Subject): 토큰 제λͺ© - ν† ν°μ—μ„œ μ‚¬μš©μžμ— λŒ€ν•œ 식별 값이 됨
aud(Audience): 토큰 λŒ€μƒμž
exp(Expiration Time): 토큰 만료 μ‹œκ°„
nbf(Not Before): 토큰 ν™œμ„± λ‚ μ§œ
iat(Issued At): 토큰 λ°œκΈ‰ μ‹œκ°„
jti(JWT Id): JWT 토큰 μ‹λ³„μž (issuerκ°€ μ—¬λŸ¬ λͺ…일 λ•Œ 이λ₯Ό κ΅¬λΆ„ν•˜κΈ° μœ„ν•œ κ°’)

ν‘œμ€€ μŠ€νŽ™ 외에도 토큰에 λŒ€ν•œ μ •λ³΄λŠ” 더 μΆ”κ°€ κ°€λŠ₯!
μ£Όμ˜β—β—β—) μ•”ν˜Έν™”λœ 토큰은 디코딩될 수 있기 λ•Œλ¬Έμ— λ―Όκ°ν•œ μ •λ³΄λŠ” 포함XXX

3. Signature

-SignatureλŠ” μ„œλ²„μ— μžˆλŠ” κ°œμΈν‚€λ‘œλ§Œ μ•”ν˜Έν™”λ₯Ό ν’€ 수 μžˆμ–΄μ„œ μž„μ˜λ‘œ Signatureλ₯Ό λ³΅ν˜Έν™” λΆˆκ°€λŠ₯
-λ””μ½”λ”©μœΌλ‘œ JWT의 Header,Payloadμ •λ³΄λŠ” λ³Ό 수 μžˆμ§€λ§Œ 정보 λ³€κ²½ μ‹œ κΈ°μ‘΄ Signature와 λΉ„κ΅ν•˜κΈ° λ•Œλ¬Έμ— 정보 μ‘°μž‘μ€ λΆˆκ°€λŠ₯

JWT의 μž₯μ πŸ‘

  1. 토큰 μžμ²΄κ°€ 인증된 μ •λ³΄λΌμ„œ μ„Έμ…˜ μ €μž₯μ†Œμ™€ 같은 λ³„λ„μ˜ μ €μž₯μ†Œκ°€ ν•„μˆ˜μ μ΄μ§€ μ•ŠμŒ
  2. μ„Έμ…˜κ³Ό λ‹€λ₯΄κ²Œ ν΄λΌμ΄μ–ΈνŠΈμ˜ μƒνƒœλ₯Ό μ„œλ²„μ— μ €μž₯ν•˜μ§€ μ•ŠμŒ
  3. Signatureλ₯Ό κ°œμΈν‚€ μ•”ν˜Έν™”λ₯Ό 톡해 λ§‰μ•„λ‘μ–΄μ„œ 데이터에 λŒ€ν•œ λ³΄μ•ˆμ„±
  4. λ‹€λ₯Έ μ„œλΉ„μŠ€μ— μ΄μš©κ°€λŠ₯ν•΄μ„œ 곡톡적인 μŠ€νŽ™μœΌλ‘œ μ‚¬μš© κ°€λŠ₯

κ³΅λΆ€ν•˜λ©° μž‘μ„±ν•˜κ³  μžˆλŠ” λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€.
잘λͺ»λœ λ‚΄μš©μ΄ μžˆμ„ 수 있으며 ν˜Ήμ‹œ μžˆλ‹€λ©΄ λŒ“κΈ€ λ‹¬μ•„μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€ 😊

0개의 λŒ“κΈ€