๐ JWT
json ์น ํ ํฐ : json ๊ฐ์ฒด๋ก ์์ ํ๊ฒ ์ ๋ณด ์ ์ก
- ๋์งํธ ์๋ช
์ด ์์ด์ ์ ๋ขฐ ๊ฐ๋ฅ
- ์๋ช
๋ ํ ํฐ ๋ด ์ ๋ณด์ ๋ฌด๊ฒฐ์ฑ ํ์ธ ๊ฐ๋ฅํ๊ฒ ํจ
ํํ
xxxxx.yyyy.zzzz (ํค๋.์ ํจ ํ์ฌ๋.์๋ช
)
- ํค๋ : ์๊ณ ๋ฆฌ์ฆ, type = ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์๋ช
ํ๋์ง ์์ฑ
- Base6Url : ์ํธํ, ๋ณตํธํ ๊ฐ๋ฅ โ hash๋ ๋ณตํธํ ๋ถ๊ฐ๋ฅ์ผ๋ก ๋น๋ฐ๋ฒํธ ์ด๊ธฐํ๋ฅผ ์งํํ๊ฒ ๋จ
- ํ์ด๋ก๋
- ๋ฑ๋ก๋ ํด๋์ : ํ์x, ๊ถ์ฅ(๋ฐํ์, ๋ง๋ฃ์๊ฐ, ์ฃผ์ )
- ๊ฐ์ธ ํด๋์ : ๊ณต๊ฐ๋๋ ๋์ง๋ง ์ ์ ๋ฅผ ํน์ ํ๋ ํค ๋ฃ์
- ์๋ช
: ํค๋, ํ์ด๋ก๋, ๋๋ง ์๋ ํค๋ฅผ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ์ํธํ ํจ
์ฒ๋ฆฌ ๊ณผ์
๋ก๊ทธ์ธ - HS256 ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
- ํด๋ผ์ด์ธํธ๊ฐ id์ pw ์ ์ก
- ์๋ฒ๊ฐ ๋ฐ์์ ๋ก๊ทธ์ธ ์๋์ ๋ํ ํ ํฐ์ ์์ฑ(header : ์๋ช
ํ ์๊ณ ๋ฆฌ์ฆ, payload, signiture)
- ๊ฐ 3๊ฐ์ง ๋ด์ฉ์ base6Url๋ก ์ธ์ฝ๋ฉ ์งํ ํ ํด๋ผ์ด์ธํธ์ ๋๋ ค์ค
๊ฐ์ธ์ ๋ณด ์์ฒญ
- ํด๋ผ์ด์ธํธ๊ฐ JWT๋ฅผ ๊ฐ์ง๊ณ ์์ฒญ
- JWT ๊ฒ์ฆ(์ ํจํ ํ ํฐ์ธ์ง) : header+payload+์๊ธฐ ํค โ ์ํธํ๋ฅผ ํตํด ์ผ์นํ์ง
๋ก๊ทธ์ธ - RSA ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
-
signiture์์ scret ์์ด header์ payload ๋ง ๊ฐ์ง๊ณ ๊ฐ์ธ ํค๋ก 2๊ฐ๋ฅผ ์ ๊ฐ์ ๋๋ ค์ค
โ ๊ฒ์ฆ์, ๊ณต๊ฐํค๋ก ์๋ช
์ ๊ฒ์ฆํ๋ฉด ๋จ