soogoori 2024. 10. 2. 15:53

jwt.getClaimAsString()

JSON Web Token (JWT) ์—์„œ ํŠน์ • ํด๋ ˆ์ž„์„ ๋ฌธ์ž์—ด๋กœ ์ถ”์ถœํ•˜๋Š” ๋ฉ”์„œ๋“œ

 

โœด๏ธ claim ์ด๋ž€? 

๐Ÿ‘‰ JWT์— ํฌํ•จ๋œ ์ •๋ณด๋กœ, ์ฃผ๋กœ ์‚ฌ์šฉ์ž ์ •๋ณด๋‚˜ ๊ถŒํ•œ ๋“ฑ๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ์Œ

 

 

โœณ๏ธ JWT ๊ตฌ์„ฑ

  • Header : ํ† ํฐ ํƒ€์ž…๊ณผ ํ•ด์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํฌํ•จ
  • Payload : ํด๋ ˆ์ž„ ๋ฐ์ดํ„ฐ ํฌํ•จ
  • Signature : ํ† ํฐ์ด ๋ณ€์กฐ๋˜์ง€ ์•Š์•˜์Œ์„ ํ™•์ธํ•˜๋Š” ์„œ๋ช…

 

 

getClaimAsString()์˜ ๋™์ž‘

  • ์ž…๋ ฅ : ํด๋ ˆ์ž„์˜ ํ‚ค๋ฅผ ์ „๋‹ฌ
  • ์ถœ๋ ฅ : ํ•ด๋‹น ํด๋ ˆ์ž„์˜ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜
// JWT ๊ฐ์ฒด๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •
String username = jwt.getClaimAsString("username");
String role = jwt.getClaimAsString("role");

System.out.println("Username: " + username);
System.out.println("Role: " + role);

 

 

JWT์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํด๋ ˆ์ž„

 

  • sub: subject (์‚ฌ์šฉ์ž ID ๋“ฑ)
  • exp: expiration time (ํ† ํฐ ๋งŒ๋ฃŒ ์‹œ๊ฐ„)
  • iat: issued at (ํ† ํฐ ๋ฐœํ–‰ ์‹œ๊ฐ„)
  • aud: audience (๋Œ€์ƒ ์‚ฌ์šฉ์ž ๋˜๋Š” ์‹œ์Šคํ…œ)
  • iss: issuer (ํ† ํฐ ๋ฐœ๊ธ‰์ž)



์ฐธ๊ณ 

https://docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/oauth2/core/ClaimAccessor.html#getClaimAsString(java.lang.String)