๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL

02/01(๋ชฉ) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 29์ผ์ฐจ TIL - JWT

by ๊ฐ์ž๊ฐœ๋ฐœ๊พผ 2024. 2. 1.

 

๐Ÿ“–  ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

  • Json Web Token

 

๐Ÿฅ”  JWT

JWT(Json Web Token)๋ž€ JSON ํฌ๋งท์„ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์†์„ฑ์„ ์ €์žฅํ•˜๋Š” Claim ๊ธฐ๋ฐ˜์˜ Web Token ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ† ํฐ์˜ ํ•œ ์ข…๋ฅ˜๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ฟ ํ‚ค ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JWT๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๐Ÿฅ”  JWT ๊ตฌ์„ฑ์š”์†Œ

JWT ๋Š” header, payload, signature ์„ธ ํŒŒํŠธ๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๐Ÿ“ ํ—ค๋” (Header)

- ์–ด๋– ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์•”ํ˜ธํ™” ํ•  ๊ฒƒ์ธ์ง€, ์–ด๋– ํ•œ ํ† ํฐ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋“ค์–ด์žˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ“ ์ •๋ณด (Payload)

- ์ „๋‹ฌํ•˜๋ ค๋Š” ์ •๋ณด(์‚ฌ์šฉ์ž id๋‚˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋“ค)๊ฐ€ ๋“ค์–ด์žˆ๋‹ค.

- payload ์— ์žˆ๋Š” ๋‚ด์šฉ์€ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

- ๊ทธ๋Ÿฌ๋‚˜ ๋…ธ์ถœ๊ณผ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•œ ์ง€์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ธ์ฆ์ด ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์ •๋ณด๋งŒ์„ ๋‹ด์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“ ์„œ๋ช… (Signature)

- ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์œผ๋กœ ํ—ค๋”์™€ ์ •๋ณด๋ฅผ ํ•ฉ์นœ ํ›„ ๋ฐœ๊ธ‰ํ•ด ์ค€ ์„œ๋ฒ„๊ฐ€ ์ง€์ •ํ•œ secret key ๋กœ ์•”ํ˜ธํ™”์‹œ์ผœ ํ† ํฐ์„ ๋ณ€์กฐํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

 

๐Ÿฅ”  JWT ์žฅ/๋‹จ์ 

1. ์žฅ์ 

- ๋™์‹œ ์ ‘์†์ž๊ฐ€ ๋งŽ์„ ๋•Œ ์„œ๋ฒ„ ์ธก ๋ถ€ํ•˜ ๋‚ฎ์ถค

 

2. ๋‹จ์ 

- ๊ตฌํ˜„์˜ ๋ณต์žก๋„ ์ฆ๊ฐ€

- JWT ์— ๋‹ด๋Š” ๋‚ด์šฉ์ด ์ปค์งˆ์ˆ˜๋ก ๋„คํŠธ์›Œํฌ ๋น„์šฉ ์ฆ๊ฐ€

- ๊ธฐ ์ƒ์„ฑ๋œ JWT ๋ฅผ ์ผ๋ถ€๋งŒ ๋งŒ๋ฃŒ์‹œํ‚ฌ ๋ฐฉ๋ฒ•์ด ์—†์Œ

- Secret key ์œ ์ถœ ์‹œ JWT ์กฐ์ž‘ ๊ฐ€๋Šฅ

 

 

 

๐Ÿ“š  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

๋‚ด์ผ์€ ๋” ์—ด์‹ฌํžˆ..