๋ฐ์ํ
JWT
Json Web Token ์ด๋, JSON ํฌ๋งท์ ์ด์ฉํ์ฌ ์ฌ์ฉ์์ ๋ํ ์์ฑ์ ์ ์ฅํ๋ clain ๊ธฐ๋ฐ์ Web Token
์ฆ, ํ ํฐ์ ํ ์ข ๋ฅ
์ผ๋ฐ์ ์ผ๋ก ์ฟ ํค ์ ์ฅ์๋ฅผ ์ฌ์ฉํ์ฌ JWT ์ ์ฅ
์ฌ์ฉ ์ด์
- ์๋ฒ๊ฐ 1๋์ธ ๊ฒฝ์ฐ
- Session1์ด ๋ชจ๋ client์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์์
- ์๋ฒ๊ฐ 2๋ ์ด์์ธ ๊ฒฝ์ฐ
์๋ฒ์ ๋์ฉ๋ ํธ๋ํฝ์ ์ฒ๋ฆฌ๋ฅผ ์ํด ์๋ฒ 2๋ ์ด์ ์ด์์ด ํ์
Session ๋ง๋ค ๋ค๋ฅธ Client ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ ์ ์์
๋ง์ฝ Client1์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ Server2 ๋ Server3์ API ์์ฒญ์ ํ๊ฒ ๋๋ฉด?
- ํด๊ฒฐ ๋ฐฉ๋ฒ
1) Sticky Session : Client ๋ง๋ค ์์ฒญ Server ๊ณ ์
2) ์ธ์ ์ ์ฅ์๋ฅผ ์์ฑํ์ฌ ๋ชจ๋ ์ธ์ ์ ์ฅ
- ํด๊ฒฐ ๋ฐฉ๋ฒ
- ์ธ์
์ ์ฅ์ ์์ฑ
- Session Storage ๊ฐ ๋ชจ๋ Client์ ๋ก๊ทธ์ธ ์ ๋ณด ์์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์๋ฒ์์ ๋ชจ๋ Client์ API ์์ฒญ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- JWT ์ฌ์ฉ
๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ Server์ ์ ์ฅํ์ง ์๊ณ , Client์ JWT๋ก ์ํธํํ์ฌ ์ ์ฅ ->
JWT ํตํด ์ธ์ฆ/์ธ๊ฐ
๋ชจ๋ ์๋ฒ์์ ๋์ผํ Secret key ์์
Secret Key๋ฅผ ํตํ ์ํธํ/์์กฐ ๊ฒ์ฆ(๋ณตํธํ ์)
JWT ์ฅ/๋จ์
์ฅ์
- ๋์ ์ ์์๊ฐ ๋ง์ ๋ ์๋ฒ ์ธก ๋ถํ๋ฅผ ๋ฎ์ถค
- client, server๊ฐ ๋ค๋ฅธ ๋๋ฉ์ธ์ ์ฌ์ฉํ ๋
- EX) ์นด์นด์ค OAuth2 ๋ก๊ทธ์ธ ์ JWT Token ์ฌ์ฉ
๋จ์
- ๊ตฌํ์ ๋ณต์ก๋ ์ฆ๊ฐ
- JWT์ ๋ด๋ ๋ด์ฉ์ด ์ปค์ง์๋ก ๋คํธ์ํฌ ๋น์ฉ ์ฆ๊ฐ(ํด๋ผ์ด์ธํธ -> ์๋ฒ)
- ๊ธฐ ์์ฑ๋ JWT๋ฅผ ์ผ๋ถ๋ง ๋ง๋ฃ์ํฌ ๋ฐฉ๋ฒ์ด ์์
- Secret Key ์ ์ถ ์ JWT ์กฐ์ ๊ฐ๋ฅ
์ฌ์ฉ ํ๋ฆ
- Client ๊ฐ ๋ก๊ทธ์ธ ์ฑ๊ณต
- ์๋ฒ์์ "๋ก๊ทธ์ธ ์ ๋ณด" -> JWT๋ก ์ํธํ(Secret Key ์ฌ์ฉ)
- ์๋ฒ์์ ์ง์ ์ฟ ํค๋ฅผ ์์ฑํด JWT๋ฅผ ๋ด์ Client ์๋ต์ ์ ๋ฌ
- ์ ๋ฌ๋ฐฉ๋ฒ์ ๊ฐ๋ฐ์๊ฐ ์ค์
- ๋ธ๋ผ์ฐ์ ์ฟ ํค ์ ์ฅ์์ ์๋์ผ๋ก JWT ์ ์ฅ
- client์์ JWT๋ฅผ ํตํด ์ธ์ฆ ๋ฐฉ๋ฒ
- ์๋ฒ์์ API ์์ฒญ ์ ๋ง๋ค ์ฟ ํค์ ํฌํจ๋ JWT๋ฅผ ์ฐพ์์ ์ฌ์ฉ
- Server
- Client๊ฐ ์ ๋ฌํ JWT ์์กฐ ์ฌ๋ถ ๊ฒ์ฆ(Secret Key ์ฌ์ฉ)
- JWT ์ ํจ๊ธฐ๊ฐ ๊ฒ์ฆ
- ๊ฒ์ฆ ์ฑ๊ณต ์, JWT ์์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ํ์ธ
728x90
๋ฐ์ํ
'๋ด์ผ๋ฐฐ์์บ ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์คํ๋ง ์๋ จ 3์ฃผ์ฐจ : Spring Security (1) | 2023.11.17 |
---|---|
์คํ๋ง ์๋ จ 3์ฃผ์ฐจ : ํํฐ (1) | 2023.11.17 |
์คํ๋ง ์๋ จ 3์ฃผ์ฐจ : ์ฟ ํค์ ์ธ์ (1) | 2023.11.17 |
์คํ๋ง ์๋ จ 3์ฃผ์ฐจ : ์ธ์ฆ๊ณผ ์ธ๊ฐ (0) | 2023.11.09 |
์คํ๋ง ์๋ จ 3์ฃผ์ฐจ : Bean (0) | 2023.11.09 |