jwt
Json Web Tokenμ μ€μλ§
μΈμ λμ μ νμ μΈμ¦μμ μ£Όλ‘ μ¬μ©λλ©° μ΄λ€ μ 보λ₯Ό μ£Όκ³ λ°μ λλ μ¬μ©νλ λ―.
JWT ꡬμ±μμ
.
μ ꡬλΆμλ‘ 3κ°μ§ λ¬Έμμ΄λ‘ ꡬμ±λμ΄μμ.[ν€λheader].[λ΄μ©payload].[μλͺ signature]
ν€λ
alg
,typ
λκ°μ§ μ 보λ₯Ό κ°μ§κ³ μμ.alg : ν΄μ± μκ³ λ¦¬μ¦μ λ§ν¨.
typ : ν ν° νμ
λ΄μ©
μ 보λ€μ΄ λ€μ΄κ° μλ λΆλΆ.
λ³΄ν΅ claim μ΄λΌ λΆλ₯Έλ€.
name, value
ν μμΌλ‘ μ΄λ£¨μ΄μ Έ μμ.ν΄λ μμ, registered, public, private ν΄λ μμΌλ‘ μ΄λ£¨μ΄μ Έ μμ.
ν΄λ μ
λ±λ‘λ ν΄λ μ
ν ν°μ λ΄κΈ°λ μ 보λ€μ μ΄λ¦nameμ΄ μ΄λ―Έ μ ν΄μ§ ν΄λ μ.
μ΄λ¬ν μ ν΄μ§ ν΄λ μμ μ¬μ©νλ κ²μ κ°λ°μκ° μ ννλ©΄ λ¨.
μμ
iss: ν ν° λ°κΈμ (issuer)
sub: ν ν° μ λͺ© (subject)
aud: ν ν° λμμ (audience)
exp: ν ν°μ λ§λ£μκ° (expiraton), μκ°μ NumericDate νμμΌλ‘ λμ΄μμ΄μΌ νλ©° (μ: 1480849147370) μΈμ λ νμ¬ μκ°λ³΄λ€ μ΄νλ‘ μ€μ λμ΄μμ΄μΌν©λλ€.
nbf: Not Before λ₯Ό μλ―Ένλ©°, ν ν°μ νμ± λ μ§μ λΉμ·ν κ°λ
μ
λλ€. μ¬κΈ°μλ NumericDate νμμΌλ‘ λ μ§λ₯Ό μ§μ νλ©°, μ΄ λ μ§κ° μ§λκΈ° μ κΉμ§λ ν ν°μ΄ μ²λ¦¬λμ§ μμ΅λλ€.
iat: ν ν°μ΄ λ°κΈλ μκ° (issued at), μ΄ κ°μ μ¬μ©νμ¬ ν ν°μ age κ° μΌλ§λ λμλμ§ νλ¨ ν μ μμ΅λλ€.
jti: JWTμ κ³ μ μλ³μλ‘μ, μ£Όλ‘ μ€λ³΅μ μΈ μ²λ¦¬λ₯Ό λ°©μ§νκΈ° μνμ¬ μ¬μ©λ©λλ€. μΌνμ© ν ν°μ μ¬μ©νλ©΄ μ μ©ν©λλ€.
κ³΅κ° ν΄λ μ
URI νμμΌλ‘ μ΄λ¦μ΄ μ§μ΄μ§ ν΄λ μ
μ? μΆ©λ λ°©μ§λ₯Ό μν΄.
μμ :
"https://velopert.com/jwt_claims/is_admin": true
λΉκ³΅κ° ν΄λ μ
λ±λ‘λ, 곡κ°λ ν΄λ μλ μλ, μλ²μ ν΄λΌμ΄μΈνΈ μ¬μ΄μ νμμ μν΄μ μ¬μ©λλ ν΄λ μ μ΄λ¦μ λ§ν¨
μλ§λ μ΄λ² νλ‘μ νΈμμλ μ΄ ν΄λ μ νλλ§μ μ¬μ©νλ©΄ λ λ―.
μλͺ
μλͺ μ ν€λμ μΈμ½λ©κ°κ³Ό μ 보μ μΈμ½λ© κ°μ ν©μΉ ν, λΉλ°ν€λ‘ ν΄μ¬νμ¬ μμ±
μλ°μμ JWT μμ±κ³Ό κ²μ¦ κ³Όμ
μ΄λ€ ν΄λ μλ€(claim)μ μ¬μ©ν μ§ μ νκ³ , JWT ν ν° μμ±
JWTλ₯Ό μνΈν(signWith) μλͺ νμ¬ JWSλ₯Ό λ§λ¬.
μ΄λ€ μκ³ λ¦¬μ¦μ μ¬μ©ν κ²μΈμ§λ μ ν΄μΌνκ³
JWT μμΆ(compact)
μ£Όμν΄μΌν μ
ν ν°μλ λ―Όκ°ν μ 보λ₯Ό μ μ₯νλ©΄ μλ¨.
μ? λ³μ‘°μ κ°ν κ²μ΄μ§, 보μμ κ°ν κ²μ΄ μλκΈ° λλ¬Έμ
μ΄λ₯Ό μν΄μ, μ ν¨κΈ°κ°, μμ±κΈ°κ°, κΆνλ±μ μ€μ νλ κ².
μ°Έκ³
https://jwt.io/
https://velopert.com/2389
https://medium.com/@OutOfBedlam/jwt-%EC%9E%90%EB%B0%94-%EA%B0%80%EC%9D%B4%EB%93%9C-53ccd7b2ba10
Last updated
Was this helpful?