๋ฐ์ํ
์ด ํฌ์คํธ๋ ๋ฐ์ด ํ๋ก๊ทธ๋๋ฐ๋์ ์ ํ๋ธ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
Token ์ธ์ฆ ๋ฐฉ์
- ์ธ์ ์ ์ฌ์ฉํ์ ๋์ ์๋ฒ์ ๋๋ ์ธ์ ์ ์ฅ์, ๋ ์ฌ๋ฌ ์๋ฒ์ผ ๋์ ์ฒ๋ฆฌํด์ผ ํ ๋ฌธ์ ๋ค์ ํ๋ฐฉ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
- ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋๋ฏ๋ก ์ฟ ํค๋ฅผ ํ์ทจ ๋นํ์ ๋์ ๋ณด์ ์ทจ์ฝ์ ๋ค๋ ์ฌ๋ผ์ง๊ฒ ๋ฉ๋๋ค.
- ์๋ฒ๊ฐ ์ฌ๋ฌ ๋ ์ด์ด๋
Secret_key
๊ฐ๋ง ์๊ณ ์์ผ๋ฉด ํ ํฐ์ Valid ํ ์ ์์ต๋๋ค.
Session์ ๋์ผ ๋๋ฉ์ธ์์๋ง..
- ๋ง์ผ ๋์ผ ๋๋ฉ์ธ์์์ ์์ฒญ์ด ์๋๋ผ๋ฉด, ์ฟ ํค๊ฐ ์ ๋ ๋ผ๊ฐ๋ค! (์๋ฒ์์ ์ฟ ํค๋ฅผ ๊ฑฐ๋ถ!)
- ๊ทธ๋ ๋ค๋ฉด, javascript์์ Ajax๋ก ํค๋์ ์ฟ ํค๋ฅผ ๊ฐ์ ๋ก ๋ด์์ ๋ณด๋ผ ์๊ฐ ์๋๋ฐ, ์๋ฒ์์๋ HTTP Only ์ค์ ์ ํตํด ์ธ๋ถ์์ HTTP ์์ฒญ์ด ์๋ javascript ์์ฒญ์ด ๋ค์ด์ค๋ฉด ๊ฑฐ๋ถ๋๋ ์ค์ ์ ํ๋ค.
HTTP Only = false
๋ก ํ์ด์ฃผ๋ฉด, ์ธ๋ถ์์ javascript๋ก ์ฅ๋์ ๋ง์ด ์น๊ธฐ ๋๋ฌธ์ true๋ก ์ค์ ํ๋ ํธ์ด๋ค.
Authorization
์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ผ ๋, ์์ฒญ ํค๋์ Authorization : <type> <credentials>
์ ๋ด์์ ๋ณด๋
๋๋ค.
type์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ ์ฐ๋ฆฌ๊ฐ ์์๋ณผ ํ์ ๋ ๊ฐ์ง๋ฅผ ์์๋ณด๊ฐฐ์ต๋๋ค.
Basic
์ฌ์ฉ์ ID์ PW๋ฅผ Base64๋ก ์ธ์ฝ๋ฉํ ๊ฐ์ ํ ํฐ์ผ๋ก ์ฌ์ฉํ๋ค. (RFC 7617)
- Basic ํ ํฐ ๊ฐ์ด ๋ ธ์ถ์ด ๋๋ฉด ID, PW๊ฐ ๋ ธ์ถ๋๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ณด์์ ์ทจ์ฝํ๋ค.
Bearer
์ผ๋ฐ์ ์ผ๋ก JWT(RFC 7519) ๊ฐ์ OAuth ํ ํฐ์ ์ฌ์ฉํ๋ค. (RFC 6750)
- Basic ๋ฐฉ์๊ณผ๋ ๋ฌ๋ฆฌ ํ ํฐ์ ID, PW ๊ฐ์ ๋ฃ์ง ์๋๋ค.
- ๋ก๊ทธ์ธ ์ ํ ํฐ์ ๋ถ์ฌ๋ฐ๊ณ , ์ดํ ์์ฒญํ ๋ ์์ฒญ ํค๋์ ํ ํฐ์ ์ค์ด์ ๋ณด๋ธ๋ค.
- ์ธ์ ์ ์ฅ์๊ฐ ํ์๊ฐ ์๊ณ , ํ ํฐ ์์ฒด์ ๋ด์ฅ์ด ๋์ด์๋ค.
- STATELESS, ๋ฌด๊ฒฐ์ฑ, ๋ณด์์ฑ์ด ์ฅ์
๋ฐ์ํ