Tuesday_July_14
.
.
.
์ธ์ฆ์ด ๋ญ๊น?
์ธ์ฆ์ ๋ง ๊ทธ๋๋ก ์ธ์ฆํ๋ ๊ฒ์ด๋ค.
๋ณดํต์ ์ ์ ์ '์์ด๋'์ '๋น๋ฐ๋ฒํธ'๋ก ํ์ธ์ ํด์ ์ธ์ฆ์ ํ๋ค.
์ฌ์ค ์ธ์ฆ์ ์์์ ์ค๋ช
ํ ๊ฒ์ด ๋์ด๋ค.
ํ์ง๋ง ์๋์์ ๋ค๋ฃฐ '์ธ๊ฐ'๋ฅผ ์ค๋ช
ํ๊ธฐ ์ํด ์กฐ๊ธ๋ ์ค๋ช
์ ํ๊ฒ ๋ค.
๋จผ์ , ์ ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํ ํ์ฌ DB์ ์ ์ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ค์ ํด๋น ์ ์ ๊ฐ ๋ก๊ทธ์ธ์ ํ ๋ ์์ด๋์, ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ์ ํ ๊ฒ์ด๋ค.
๊ทธ๋ผ ์
๋ ฅ์ ๋ฐ์ ๋น๋ฐ๋ฒํธ๋ฅผ 'ํ์๊ฐ์
ํ ๋ ํ๋ ์ํธํ ๋ฐฉ๋ฒ๊ณผ ๋์ผํ๊ฒ ์ํธํ ํ๋ค.'
๊ทธ๋ฆฌ๊ณ ๊ทธ ๋น๋ฐ๋ฒํธ๋ฅผ DB์ ์๋ ๋น๋ฐ๋ฒํธ์ ๊ฐ๋ค๋ฉด ๋ก๊ทธ์ธ์ด ๋๋ ๊ฒ์ด๋ค.
(์ํธํ์ ๋ํ ์ค๋ช
์ ๋์ค์ Bcrypt ๋ผ๋ ๋ถ๋ถ์์ ๋ค๋ฃฐ ์์ ์ด๋ค.)
๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด 'token'์ ํด๋น ์ ์ ์๊ฒ ์ค๋ค.
token์ ๊ฐ๊ณ ์๋ ํด๋น ์ ์ ๋ ๋์ค์ ํ์ ์ ๋ณด๊ฐ(์ธ์ฆ) ํ์ํ ์์ฒญ์ ํด์ผํ ๋,
token ์ ๋ณด๋ง ์๋ฒ์ ์ ์ก์ ํ๋ฉด ๋๋ ๊ฒ์ด๋ค.
์ธ๊ฐ๋, ํด๋น ์ ์ ๊ฐ ์ด๋ ํ ์์ฒญ(request)์ ๋ณด๋์ ๋, ํด๋น ์์ฒญ์ ์คํํ ์ ์๋
๊ถํ์ ๊ฐ๊ณ ์๋์ง ํ์ธํ๋ ์ ์ฐจ์ด๋ค.
'์ธ๊ฐ'๋ฅผ ์ค๋ช ํ๊ธฐ ์ํด ์์ '๋ก๊ทธ์ธ ์ ์ฐจ'์ ๋ํ ๋ถ๋ถ์ ์ ๊น ์ดํด๋ณด์๋ค.
์๊น '๋ก๊ทธ์ธ ์ ์ฐจ' ๋ถ๋ถ์์ token์ ํตํด ์ธ์ฆ์ ํ๋ค๊ณ ํ๋ค.
๊ทธ token์ ์๋ฒ๋ก ๋ณด๋ด์ง๋ค๊ณ ๋ ํ๋ค.
์๋ฒ๋ก ์ ์ก๋ ๊ทธ token์ ๋ณตํธํ๋ฅผ ํ๋ฉด ์ ์ ์ ์ ๋ณด(user id)๋ฅผ ์ป์ ์ ์๋ค.
(์ด ๋ถ๋ถ๋ ๋์ค์ JWT(Json Web Token)๋ถ๋ถ์์ ๋ค๋ฃฐ ์์ ์ด๋ค.)
์ป์ user id๋ก DB์ ํด๋น ์ ์ ๊ฐ ๊ถํ(Permission)์ ๊ฐ์ง๊ณ ์๋์ง ํ์ธ์ ํ๋ค.
๋ง์ฝ ์ ์ ๊ฐ ํด๋น ๊ถํ์ ๊ฐ์ง๊ณ ์๋ค๋ฉด ํด๋น ์์ฒญ์ ์ฒ๋ฆฌํด์ฃผ๋ฉด ๋๋ ๊ฒ์ด๊ณ ,
ํด๋น ๊ถํ์ ๊ฐ์ง๊ณ ์์ง ์๋ค๋ฉด, Unauthorized Response(401)ํน์ ๋ค๋ฅธ ์๋ฌ ์ฝ๋๋ฅผ ๋ณด๋ด๋ฉด ๋๋ค.