TIL ( ๋ฉด์ ‘์นดํƒ€ jwt )

2024. 8. 16. 22:26ใ†TIL

 

๐Ÿ’ก ๋ฉด์ ‘์นดํƒ€ (JWT)

 

์˜์˜

 

- JWT( JSON Web Token)๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ์ •๋ณด ๊ตํ™˜์„ ์œ„ํ•ด ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€์œผ๋กœ, JWT๋Š” ํ—ค๋”(header), ํŽ˜์ด๋กœ๋“œ(payload), ์„œ๋ช…(signature)์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

- ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ์ธ์ฆ ๋ฐ ์ •๋ณด ๊ตํ™˜์— ์‚ฌ์šฉ๋œ๋‹ค.

( ํ—ค๋”: ํ† ํฐ์˜ ์œ ํ˜•๊ณผ ์„œ๋ช… ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํฌํ•จํ•œ๋‹ค. ex) {"alg": "HS256", "typ": "JWT"} / ํŽ˜์ด๋กœ๋“œ: ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ •๋ณด์™€ ํด๋ ˆ์ž„์„ ํฌํ•จํ•œ๋‹ค. /์„œ๋ช…: ํ—ค๋”์™€ ํŽ˜์ด๋กœ๋“œ๋ฅผ ์กฐํ•ฉํ•œ ํ›„ ๋น„๋ฐ€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋œ ์„œ๋ช…)

 

์ฒ˜๋ฆฌ๋ฐฉ์‹

 

- ํด๋ผ์ด์–ธํŠธ๋Š” ๋กœ๊ทธ์ธ ํ›„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ JWT๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„ ์ €์žฅํ•˜๊ณ , ์ดํ›„ API ์š”์ฒญ์‹œ ์ด ํ† ํฐ์„ Authorizationํ—ค๋”์— ํฌํ•จํ•˜์—ฌ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค.
- ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ ๋ฐ›์€ JWT๋ฅผ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ช…์„ ํ™•์ธํ•œ๋‹ค/ํ† ํฐ์ด ๋ณ€์กฐ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•˜๋ฉฐ, ๋น„๋ฐ€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ—ค๋”์™€ ํŽ˜์ด๋กœ๋“œ๋ฅผ ์กฐํ•ฉํ•œ ์„œ๋ช…์„ ์ƒ์„ฑํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์„œ๋ช…๊ณผ ๋น„๊ตํ•˜๋ฉฐ ๋งŒ๋ฃŒ์‹œ๊ฐ„์„ ํ™•์ธํ•˜์—ฌ ์œ ํšจํ•œ ํ† ํฐ์ธ์ง€ ํŒ๋‹จํ•œ๋‹ค.

 

์žฌ๋ฐœ๊ธ‰ ๋ฐฉ์‹๊ณผ ์ฃผ๊ธฐ

 

- JWT๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์ด ์„ค์ • ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋งŒ๋ฃŒ๋œ ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ํด๋ผ์ด์–ธํŠธ๋Š” ์ƒˆ ํ† ํฐ์„ ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋ฆฌํ”„๋ ˆ์Šค ํ† ํฐ์„ ๋ฐœ๊ธ‰๋ฐ›๊ณ  ์ฃผ๊ธฐ์ ์œผ๋กœ ์žฌ๋ฐœ๊ธ‰ํ•œ๋‹ค.


• ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ: ์•ก์„ธ์Šค ํ† ํฐ๊ณผ ๋ณ„๋„๋กœ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•˜์—ฌ, ์•ก์„ธ์Šค ํ† ํฐ์ด ๋งŒ๋ฃŒ๋˜์—ˆ์„ ๋•Œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ์•ก์„ธ์Šค ํ† ํฐ์„ ๋ฐœ๊ธ‰๋ฐ›๋Š”๋‹ค. ์ด๋•Œ ๋ฆฌํ”„๋ ˆ์‹œ ํ† ํฐ์€ ๋” ๊ธด ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ๊ฐ€์ง„๋‹ค.
  ์ฃผ๊ธฐ์  ์žฌ๋ฐœ๊ธ‰: ์„œ๋ฒ„์—์„œ ์ •๊ธฐ์ ์œผ๋กœ ํ† ํฐ์„ ์žฌ๋ฐœ๊ธ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์œผ๋ฉฐ, ์ด๋•Œ ํด๋ผ์ด์–ธํŠธ๋Š” ์ผ์ • ์ฃผ๊ธฐ๋กœ ์ƒˆ๋กœ์šด ํ† ํฐ์„ ์š”์ฒญํ•œ๋‹ค.

 

์ธ์ฆ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•

 

- Authorization ํ—ค๋” ์‚ฌ์šฉ: ํด๋ผ์ด์–ธํŠธ๋Š” API ์š”์ฒญ ์‹œ JWT๋ฅผ Authorization ํ—ค๋”์— ํฌํ•จ์‹œ์ผœ ์ „์†กํ•œ๋‹ค. ์˜ˆ: Authorization: Bearer <token>
- ์„œ๋ฒ„์—์„œ ๊ฒ€์ฆ: API ์„œ๋ฒ„๋Š” ์ˆ˜์‹ ํ•œ JWT๋ฅผ ๊ฒ€์ฆํ•˜์—ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๊ฒ€์ฆ์ด ์„ฑ๊ณตํ•˜๋ฉด ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ์‹คํŒจํ•˜๋ฉด ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

TIL( ์•„ํ‹€๋Ÿฌ๋ฆฌ ํ…Œ์ŠคํŠธ )  (0) 2024.08.21
TIL(AWS Lambda)  (0) 2024.08.19
TIL( SQL ๊ธฐ๋ณธ๋ฌธ๋ฒ• )  (0) 2024.08.14
TIL( reduce )  (0) 2024.08.13
TIL ( Redis-cache )  (0) 2024.08.12