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