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