๐Token
ํ ํฐ ์ธ์ฆ ๋ฐฉ์์ ์ต๊ทผ ์น ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ง์ด ์ฌ์ฉ๋๋ ์ธ์ฆ ๋ฐฉ์ ์ค ํ๋๋ก ํ ํฐ์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์๋ฒ๊ฐ ์๋ ํด๋ผ์ด์ธํธ ์ธก์ ์ ์ฅํ ์ ์๋ค. ํด๋ผ์ด์ธํธ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์ธ์
์ธ์ฆ ๋ฐฉ์์ ๋น๊ตํด ์๋ฒ์ ๋ถํ๋ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ๋ฌธ์ ๋ฅผ ์ค์ผ ์ ์๋ค.
๐ท๏ธํ ํฐ ์ธ์ฆ ๋ฐฉ์์ ํ๋ฆ
๐ท๏ธํ ํฐ ์ธ์ฆ ๋ฐฉ์์ ์ฅ์ ๊ณผ ๋จ์
์ฅ์
- ๋ฌด์ํ์ฑ : ์๋ฒ๋ ๋น๋ฐ ํค๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์์ ๋ณด๋ธ ํ ํฐ์ ์ ํจ์ฑ๋ง ๊ฒ์ฆํ๋ฉด ๋๋ค.
- ํ์ฅ์ฑ : ๋ค์์ ์๋ฒ๊ฐ ๊ณตํต๋ ์ธ์
๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ํ์๊ฐ ์์ด ์๋ฒ๋ฅผ ํ์ฅํ๊ธฐ ๋ ์ฉ์ดํ๋ค.
- ์ด๋์๋ ํ ํฐ ์์ฑ ๊ฐ๋ฅ : ํ ํฐ์ ์์ฑ๊ณผ ๊ฒ์ฆ์ด ํ๋์ ์๋ฒ์์ ์ด๋ฃจ์ด์ง์ง ์์๋ ๋๊ธฐ ๋๋ฌธ์ ํ ํฐ ์์ฑ๋ง์ ๋ด๋นํ๋ ์๋ฒ๋ฅผ ๊ตฌ์ถํ ์ ์๋ค.
- ๊ถํ ๋ถ์ฌ์ ์ฉ์ด : ํ ํฐ์ ์ธ์ฆ ์ํ, ์ ๊ทผ ๊ถํ ๋ฑ ๋ค์ํ ์ ๋ณด๋ฅผ ๋ด์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ๊ถํ ๋ถ์ฌ์ ์ฉ์ด
๋จ์
- ๋ฌด์ํ์ฑ: ์ธ์ฆ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ์ฃผ์ฒด๊ฐ ์๋ฒ๊ฐ ์๋๋ฏ๋ก ํด๋น ํ ํฐ์ ๊ฐ์ ๋ก ๋ง๋ฃ์ ํฌ ์ ์๋ค.
- ์ ํจ ๊ธฐ๊ฐ: ํ ํฐ ํ์ทจ๋ฅผ ๋๋นํด ์ ํจ ๊ธฐ๊ฐ์ ์งง๊ฒ ์ค์ ํ๋ฉด ํ ํฐ์ด ๋ง๋ฃ ๋ ๋๋ง๋ค ๋ค์ ๋ก๊ทธ์ธํด์ผํด์ ์ข์ ์์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ค.
- ํ ํฐ์ ํฌ๊ธฐ: ํ ํฐ์ ์ ๋ณด๊ฐ ๋ง์ด ๋ด๊ธธ ์๋ก ๋คํธ์ํฌ ๋น์ฉ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
๐ท๏ธJWT (JSON Web Token)
JWT๋ JSON ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์ด๋ฅผ ํ ํฐ์ผ๋ก ์ํธํํ์ฌ ์ ์กํ ์ ์๋ ๊ธฐ์ ์ด๋ค.
JWT์ ๊ตฌ์ฑ
- Header
์ด๋ค ์ข
๋ฅ์ ํ ํฐ์ธ์ง, ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ํธํ ๋์๋์ง ๋ด๊ณ ์๋ค.
JSON ๊ฐ์ฒด๋ฅผ base64 ๋ฐฉ์์ผ๋ก ์ธ์ฝ๋ฉํ๋ค.
base64์ ๋์ฝ๋ฉํ๊ธฐ ์ฝ๊ธฐ๋๋ฌธ์ ๋ฏผ๊ฐํ ์ ๋ณด๋ ๋ด์ง ์๋๋ค.(๋์ฝ๋ฉ ๋งํฌ)
- Payload
์ ์ ์ ์ ๋ณด, ๊ถํ, ๊ธฐํ ํ์ํ ์ ๋ณด ๋ฑ์ ๋ด๊ณ ์๋ค.
header์ ๋ง์ฐฌ๊ฐ์ง๋ก JSON ๊ฐ์ฒด๋ฅผ base64๋ก ์ธ์ฝ๋ฉํ๋ค.
- Signature
{base64(Header + Payload) + secert}๋ฅผ ์ํธํํ ๊ฐ
JWT์ salt๋ฅผ secert๋ผ๊ณ ํ๋ค.
๐ท๏ธ์ก์ธ์ค ํ ํฐ(Access Token)๊ณผ ๋ฆฌํ๋ ์ ํ ํฐ(Refresh Token)
Access Token
์๋ฒ์ ์ ๊ทผํ๊ธฐ ์ํ ํ ํฐ์ผ๋ก ๋ณด์์ ์ํด ์ ํจ๊ธฐ๊ฐ์ด ๋ณดํต 24์๊ฐ ์ ๋๋ก ์งง๋ค.
Refresh Token
์ก์ธ์ค ํ ํฐ์ด ๋ง๋ฃ๋์์ ๋ ์๋ก์ด ์ก์ธ์ค ํ ํฐ์ ๋ฐ๊ธ๋ฐ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ ํฐ์ด๋ค. ๋ฐ๋ผ์ ๋ฆฌํ๋ ์ ํ ํฐ๋ณด๋ค ๊ธด ์ ํจ๊ธฐ๊ฐ์ ์ค์ ํ๋ค.
๐Hashing
๐ท๏ธHashing ํน์ง
- ํด์ฑ์ ์ํธํ ๋ฐฉ์์ค์ ํ๋๋ก ๋ณตํธํ๊ฐ ๋ถ๊ฐ๋ฅํ๊ณ ์ํธํ๋ง ๊ฐ๋ฅํ๋ค.
- ํด์ฑ์ ํด์ ํจ์(Hash Function)์ ์ฌ์ฉํ์ฌ ์ํธํํ๋ค.
- ํญ์ ๊ฐ์ ๊ธธ์ด์ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ค.
- ์๋ก ๋ค๋ฅธ ๋ฌธ์์ด์ ๋์ผํ ํด์ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ๋์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ์ด ๋์จ๋ค.
- ๋์ผํ ๋ฌธ์์ด์ ๋์ผํ ํด์ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ํญ์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ์ด ๋์จ๋ค.
๐ท๏ธ๋ ์ธ๋ณด์ฐ ํ
์ด๋ธ๊ณผ ์ํธ(Salt)
๋ ์ธ๋ณด์ฐ ํ
์ด๋ธ
ํด์ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์ ๋ฌธ์์ด์ ํญ์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ์ด ๋์จ๋ค๋ ํน์ฑ์ ์ด์ฉํด ์ํธํ ์ด์ ๋ฌธ์์ด๊ณผ ํด์ฑํ ๊ฐ์ ๊ธฐ๋กํด ๋ ํ
์ํธ
๋ ์ด๋ณด์ฐ ํ
์ด๋ธ์ ๊ธฐ๋ก๋ ๊ฒฝ์ฐ ์ ์ถ๋๋ฉด ํด์ฑ ์ด์ ์ ๊ฐ์ ์์ ๋ผ ์ ์๋ค.
์ํธํํ ๋ฌธ์์ด ๋ค์ ์์์ ๊ฐ์ ๋ํด ํด์ฑํ๋ฉด ์ ์ถ๋๋๋ผ๋ ํด์ฑ ์ด์ ์ ๊ฐ์ ์์๋ด๊ธฐ ์ด๋ ค์์ง๋ค.
์ด๋ ๋ํด์ฃผ๋ ์์์ ๊ฐ์ ์ํธ๋ผ๊ณ ํ๋ค.