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 |