-
ํ ํฐ์ด๋
- ์ธ์ฆ๊ณผ ๊ถํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ์ํธํ๋ ๋ฌธ์์ด
- ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ฌ์ฉ์์ ์ ๊ทผ ๊ถํ ๋ถ์ฌ ๊ฐ๋ฅ
- ํ ํฐ์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์๋ฒ๊ฐ ์๋, ํด๋ผ์ด์ธํธ ์ธก์ ์ ์ฅ ๊ฐ๋ฅ
-
ํ ํฐ ์ธ์ฆ ๋ฐฉ์์ ํ๋ฆ
- ์ฌ์ฉ์๊ฐ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ด์ ์๋ฒ์ ๋ก๊ทธ์ธ ์์ฒญ
- ์๋ฒ๋ DB์ ์ ์ฅ๋ ์ฌ์ฉ์์ ์ธ์ฆ ์ ๋ณด ํ์ธ
- ์ธ์ฆ์ ์ฑ๊ณตํ๋ค๋ฉด ํด๋น ์ฌ์ฉ์์ ์ธ์ฆ ๋ฐ ๊ถํ ์ ๋ณด๋ฅผ ์๋ฒ์ ๋น๋ฐ ํค์ ํจ๊ป ํ ํฐ์ผ๋ก ์ํธํ
- ์์ฑ๋ ํ ํฐ์ ํด๋ผ์ด์ธํธ๋ก ์ ๋ฌ
- HTTP ์์์ ์ธ์ฆ ํ ํฐ์ ๋ณด๋ด๊ธฐ ์ํด Authorization ํค๋ ์ฌ์ฉ or ์ฟ ํค๋ก ์ ๋ฌ
- ํด๋ผ์ด์ธํธ๋ ์ ๋ฌ๋ฐ์ ํ ํฐ ์ ์ฅ
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ๋ฆฌ์์ค ์์ฒญ ์ ํ ํฐ์ ํจ๊ป ์ ๋ฌ
- ํ ํฐ์ ๋ณด๋ผ ๋์๋ Authorization ํค๋๋ฅผ ์ฌ์ฉ or ์ฟ ํค๋ก ์ ๋ฌ
- ์๋ฒ๋ ์ ๋ฌ๋ฐ์ ํ ํฐ์ ์๋ฒ์ ๋น๋ฐ ํค๋ฅผ ํตํด ๊ฒ์ฆ (ํ ํฐ ์์กฐ ์ฌ๋ถ์ ์ ํจ๊ธฐ๊ฐ ๋ฑ ํ์ธ ๊ฐ๋ฅ)
- ํ ํฐ์ด ์ ํจํ๋ค๋ฉด ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํ ์๋ต ๋ฐ์ดํฐ ์ ์ก
-
ํ ํฐ ์ธ์ฆ ๋ฐฉ์์ ์ฅ์
- ๋ฌด์ํ์ฑ
- ์๋ฒ๊ฐ ์ ์ ์ ์ธ์ฆ ์ํ ๊ด๋ฆฌ X
- ์๋ฒ๋ ๋น๋ฐํค๋ก ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ ํ ํฐ์ ์ ํจ์ฑ๋ง ๊ฒ์ฆํ๋ฉด ๋๊ธฐ์ ๋ฌด์ํ์ ์ธ ์ํคํ ์ฒ ๊ตฌ์ถ ๊ฐ๋ฅ
- ํ์ฅ์ฑ
- ์ฌ๋ฌ ๊ฐ์ ์๋ฒ๊ฐ ๊ณตํต๋ ์ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ ํ์ง ์์๋ ๋จ
- ๋ฐ๋ผ์ ์๋ฒ ํ์ฅ ์ฉ์ด
- ์ด๋์๋ ํ ํฐ ์์ฑ ๊ฐ๋ฅ
- ํ ํฐ ์์ฑ๊ณผ ๊ฒ์ฆ์ด ํ๋์ ์๋ฒ์์ ์ด๋ฃจ์ด์ง์ง ์์๋ ๋จ
- ๋ฐ๋ผ์ ํ ํฐ ์์ฑ๋ง์ ๋ด๋นํ๋ ์๋ฒ ๊ตฌ์ถ ๊ฐ๋ฅ
- ๊ถํ ๋ถ์ฌ์ ์ฉ์ด
- ์ธ์ฆ ์ํ, ์ ๊ทผ ๊ถํ ๋ฑ ๋ค์ํ ์ ๋ณด๋ฅผ ๋ด์ ์ ์๊ธฐ์ ์ฌ์ฉ์ ๊ถํ ๋ถ์ฌ์ ์ฉ์ด
- ์ด๋๋ฏผ ๊ถํ ๋ถ์ฌ ๋ฐ ์ ๋ณด ์ ๊ทผ ๋ฒ์๋ ์ค์ ๊ฐ๋ฅ
- ๋ฌด์ํ์ฑ
-
ํ ํฐ ์ธ์ฆ ๋ฐฉ์์ ํ๊ณ
- ๋ฌด์ํ์ฑ
- ํ ํฐ์ด ํ์ทจ๋์ด๋ ํด๋น ํ ํฐ์ ๊ฐ์ ๋ก ๋ง๋ฃ์ํฌ ์ ์์
- ์ ํจ๊ธฐ๊ฐ
- ์ ํจ๊ธฐ๊ฐ์ ์งง๊ฒ ์ค์ ํ๋ฉด ๋ง๋ฃ๋ ๋๋ง๋ค ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์
- ์ ํจ๊ธฐ๊ฐ์ ๊ธธ๊ฒ ์ค์ ํ๋ฉด ํ ํฐ ํ์ทจ ์ ์ํ
- ํ ํฐ์ ํฌ๊ธฐ
- ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ผ๋ฉด ํ ํฐ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ฏ๋ก ๋คํธ์ํฌ ๋น์ฉ ๋ฌธ์ ์๊น
- ๋ฌด์ํ์ฑ
-
JWT๋
- JSON ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ๋ด๊ณ , ์ด๋ฅผ ํ ํฐ์ผ๋ก ์ํธํํ์ฌ ์ ์กํ๋ ๊ธฐ์
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ผ ๋, ์ธ์ฆ์ ๋ณด๋ฅผ ์ํธํ๋ JWT ํ ํฐ์ผ๋ก ์ ๊ณตํ๊ณ , ์๋ฒ๋ ์ด ํ ํฐ์ ๊ฒ์ฆํด ์ธ์ฆ์ ๋ณด ํ์ธ
-
JWT์ ๊ตฌ์ฑ
- Header
- ํ ํฐ ์์ฒด๋ฅผ ์ค๋ช ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ด๊ฒจ ์์
- Payload
- ์ด๋ค ์ ๋ณด์ ์ ๊ทผ ๊ฐ๋ฅํ์ง ๊ถํ, ์ ์ ์ ๊ฐ์ธ์ ๋ณด, ํ ํฐ์ ๋ฐ๊ธ ์๊ฐ ๋ฐ ๋ง๋ฃ ์๊ฐ ๋ฑ
- Signature
- ํ ํฐ์ ๋ฌด๊ฒฐ์ฑ ํ์ธ ๊ฐ๋ฅ
- Header์ Payload๊ฐ ์์ฑ๋์๋ค๋ฉด, ์๋ฒ์ ๋น๋ฐ ํค(์ํธํ์ ์ถ๊ฐํ salt)์ Header์์ ์ง์ ํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ํด์ฑ
- Header
- ์ก์ธ์ค ํ ํฐ(Access Token)
- ์๋ฒ์ ์ ๊ทผํ๊ธฐ ์ํ ํ ํฐ
- ๋ณด์์ ์ํด 24์๊ฐ ์ ๋์ ์งง์ ์ ํจ๊ธฐ๊ฐ
- ๋ฆฌํ๋ ์ ํ ํฐ(Refresh Token)
- ์๋ฒ ์ ๊ทผ์ด ์๋ ์ก์ธ์ค ํ ํฐ ๋ง๋ฃ์ ์๋ก์ด ์ก์ธ์ค ํ ํฐ์ ๋ฐ๊ธ๋ฐ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ ํฐ
- ์ ๋ฆฌ
- ์ก์ธ์ค ํ ํฐ์ด ๋ง๋ฃ๋๋๋ผ๋ ๋ฆฌํ๋ ์ ํ ํฐ์ ์ ํจ๊ธฐ๊ฐ์ด ๋จ์์๋ค๋ฉด ์ฌ์ฉ์๋ ๋ค์ ๋ก๊ทธ์ธ์ ํ ํ์ ์์ด ์ง์ํด์ ์ธ์ฆ ์ํ๋ฅผ ์ ์ง ๊ฐ๋ฅ
- ๋ค๋ง, ํ ํฐ์ ๊ธด ์ ํจ ๊ธฐ๊ฐ ๋์ ํดํน์ ์ํ์ฑ๋ ์์
- ์ด๋ฅผ ๋๋นํ๊ธฐ ์ํด ๋ฆฌํ๋ ์ ํ ํฐ์ ์ธ์ ์ฒ๋ผ ์๋ฒ์ ์ ์ฅํ๊ณ ์ด์ ๋ํ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ธฐ๋ ํจ