JWT๋ž€?

JWT๋Š” JSON Web Token์˜ ์ค€๋ง๋กœ, JSON์˜ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์›น ํ‘œ์ค€ ๊ธฐ์ˆ ์ด๋‹ค.
๋ณดํ†ต ๋กœ๊ทธ์ธ ์ธ์ฆ ํ† ํฐ ๋“ฑ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

๋น„๋ฐ€ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์— ์ธ์ฆ ์ •๋ณด์˜ ๋ณด๊ด€์„ ๋– ๋„˜๊ธธ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ํŠน์ง•์ด๋‹ค. ์„ธ์…˜์„ ๊ผญ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.



๊ตฌ์กฐ

JWT ํ† ํฐ์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.

์ฒซ๋ฒˆ์งธ Header๋ผ๋Š” ์‹๋ณ„์šฉ ๊ฐ์ฒด๊ฐ’์€ BASE64๋กœ ์ธ์ฝ”๋”ฉ.
๋‘๋ฒˆ์งธ ๋ถ€๊ฐ€์ •๋ณด Payload๋„ BASE64๋กœ ์ธ์ฝ”๋”ฉ.
์„ธ๋ฒˆ์งธ๋Š” Header์™€ Payload๋ฅผ BASE64๋กœ ์ธ์ฝ”๋”ฉ ํ›„ ๋น„๋ฐ€ํ‚ค๋กœ ์•”ํ˜ธํ™”๋ฅผ ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ด ์„ธ๊ฐ€์ง€๋ฅผ .์œผ๋กœ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.



์‚ฌ์šฉ๊ณผ์ •

JWT์˜ ์‚ฌ์šฉ์€ ๋Œ€์ฒด๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋”ฐ๋ฅธ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ธ์ฆ์— ์„ฑ๊ณตํ•œ๋‹ค๋ฉด ์„œ๋ฒ„๋Š” ์ž์‹ ์ด ๊ฐ€์ง„ ๋น„๋ฐ€ํ‚ค๋กœ ์ƒ๊ธฐํ•œ ๊ตฌ์กฐ์˜ ํ† ํฐ์„ ์ƒ์„ฑ, ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†กํ•œ๋‹ค.
ํด๋ผ์ด์–ธํŠธ๋Š” ๊ทธ๊ฑธ ์ž˜ ๋ณด๊ด€ํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€, ์ธ์ฆ์„ ์š”๊ตฌํ•˜๋Š” ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ header ๋“ฑ์— ํฌํ•จํ•ด์„œ ์ „์†ก์„ ํ•œ๋‹ค.
๊ทธ๋Ÿผ ์„œ๋ฒ„๋Š” ๊ทธ๊ฑธ ๋ฐ›๊ณ , ๊ฑฐ๊ธฐ ๋“ค์–ด์žˆ๋Š” Header์™€ Payload๋ฅผ ๋น„๋ฐ€ํ‚ค๋กœ ์•”ํ˜ธํ™”ํ•œ๋‹ค์Œ์— Signature์™€ ๋น„๊ตํ•ด ์œ ํšจ์„ฑ์„ ๊ฒ€์ฆํ•œ๋‹ค.

๋ฐฑ๋ฌธ์ด ๋ถˆ์—ฌ์ผ๊ฒฌ์ด๋ผ. ์˜ˆ๋กœ๋ถ€ํ„ฐ, ๋ฌด์–ธ๊ฐ€๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ๋Š” ์ฝ”๋“œ๋ฅผ ๋ณด๋Š” ๊ฒƒ์ด ์ตœ๊ณ ๋‹ค.
ํ•œ๋ฒˆ node.js์—์„œ ๊ตฌํ˜„๋œ jwt ๋ชจ๋“ˆ์˜ ์ฝ”๋“œ๋ฅผ ๋œฏ์–ด๋ณด์ž.

๋‹ค์Œ์€ jsonwebtoken์˜ ์ข…์† ๋ชจ๋“ˆ jws์˜ ํ† ํฐ ์ƒ์„ฑ ์ฝ”๋“œ์ด๋‹ค.

๋‹ค์Œ์€ jsonwebtoken์˜ ์ข…์† ๋ชจ๋“ˆ jwa์˜ ํ† ํฐ ๊ฒ€์ฆ ์ฝ”๋“œ์ด๋‹ค.

ํ† ํฐ์—์„œ header์™€ payload๋ฅผ ์ถ”์ถœ, ๋น„๋ฐ€ ํ‚ค๋กœ signature๋ฅผ ์žฌ๊ตฌํ˜„ํ•˜๊ณ ,
ํ† ํฐ์˜ signature์™€ ๋น„๊ตํ•ด์„œ ๊ฐ™๋‹ค๋ฉด ์ œ๋Œ€๋กœ ๋œ ์‚ฌ์šฉ์ž์˜ ํ† ํฐ์ด ๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.

๊ทธ๋ ‡๋‹ค.



์ฐธ์กฐ
https://en.wikipedia.org/wiki/JSON_Web_Token
https://velopert.com/2448
https://velog.io/@hwang-eunji/backend-django-JWT-%EB%B0%9C%ED%96%89%ED%95%98%EA%B8%B0
https://www.npmjs.com/package/jsonwebtoken
https://ko.wikipedia.org/wiki/%EB%B2%A0%EC%9D%B4%EC%8A%A464