๐ Front End Developer ์ Back End ๋์ ๊ธฐ ! ๐
์ด ๊ธ์ PROJECT LION : ํธ์ฝ์น ๊ฐ์ฌ๋์ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉฐ ์ฐธ๊ณ ํ ๊ธ์ ๋๋ค.
์์ ์ค, ๊ฐ๋ฐ๊ณผ์ ์ ๋ฆฌ ๋ฐ issue๊ฐ ๋์๋ ๋ถ๋ถ๋ค์ ๊ณต์ ๋ฐ ๊ธฐ๋กํ๊ณ ์ ์์ฑํ๊ฒ ๋์์ต๋๋ค.
โ ์ฌ์ฉ์์ ๊ฒฝ์ฐ๋ฅผ ๋๋์ด ๋ณด๊ฒ ๋ค.
์ฌ์ฉ์๋ ํ๋งค์์ ๊ตฌ๋งค์๋ก ๊ตฌ๋ถํ ์ ์๋ค.
ํ๋งค์๋ ์ํ CRUD๊ฐ ๊ฐ๋ฅํด์ผํ๋ฉฐ, ๊ตฌ๋งค์๋ ์ํ์ ํ์ธํ๊ณ ๊ตฌ๋งคํ๋ ์ญํ ์ด๋ค.
๋ฐ๋ผ์, ํ๋งค์์ ๋ฌ๋ฆฌ ๊ตฌ๋งค์๋ ์ํ์ ๋ณด๊ฑฐ๋ ๊ตฌ๋งค๋ง ๊ฐ๋ฅํด์ผํ๋ค.
์ฌ์ฉ์๋ฅผ ๊ตฌ๋ถํ๊ณ , ๊ฐ ์ฌ์ฉ์๋ง๋ค ๊ถํ์ ๋ถ์ฌํด ์์ฒญ์ ์ ํํด์ผํ๋ค.
์ฐ์ ,
ํ๋งค์/๊ตฌ๋งค์ > Users collection document > is_admin key๊ฐ์ ๋์
ํ์ฌ true์ผ ์ ํ๋งค์, is_admin ๊ฐ์ด ์๊ฑฐ๋ false์ผ ์ ๊ตฌ๋งค์ ๋ก ๊ตฌ๋ถํ ๊ฒ์ด๋ค.
๊ถํ์ ์์ฑํ ํ, ์ํ๋ฑ๋ก ๋ฉ๋ด๋ฅผ ๊ด๋ฆฌ์์ผ ๊ฒฝ์ฐ์๋ง ๋ณด์ฌ์ง๊ฒ ์์ ํด ๋ณด๋๋ก ํ๊ฒ ๋ค.
๐งจ ๊ด๋ฆฌ์/๊ตฌ๋งค์ ์ ์ ๊ตฌ๋ถ
- mongodb Compass ์ ์ ๋ฐ is_admin ๊ฐ ๋ถ์ฌ(๊ด๋ฆฌ์)
= ์์ฑ ์ string ๊ฐ์ boolean์ผ๋ก ๋ณ๊ฒฝ ํ ์์ฑํ๋ค.
is_admin ๊ฐ์ผ๋ก ๊ตฌ๋ถํ ๊ฒ์ด๋ฉฐ, test@test.com id๋ admin์ผ๋ก ๊ถํ ๊ฐ์ด ์ฃผ์ด์ง ๊ฒ์ด๋ค.
is_admin ์ผ๋ก ํ๋จํ ํจ์ ์์ฑ(auth.py)
= ์ฐ์ ํ๋งค์์ ๊ตฌ๋งค์๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด์๋ ๋ก๊ทธ์ธ ๋ ์ํ์ฌ์ผ ํ๋ฏ๋ก check_login ํจ์๋ฅผ ํธ์ถํ๋ค.
๋ง์ฝ, user๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ฉด false ๊ฐ์ return ์์ผ์ค๋ค.๋ฐ๋์ ๊ฒฝ์ฐ is_admin์ ๊ฐ์ด ์กด์ฌํ๋ค๋ฉด, ๊ทธ ๊ฐ์ return ์์ผ์ค๋ค. ( boolean or false )
get ํจ์์ ๊ฒฝ์ฐ is_admin์ด ์กด์ฌํ์ง ์๋๋ค๋ฉด ์ค๋ฅ๋ฅผ ํ์ถํ๋ ๊ฒ์ด ์๋, false ๊ฐ์ return ํ๋๋ก ๋ง๋ค์ด์ค๋ค.
is_admin import ๋ฐ ์ฌ์ฉ
= is_admin์ด ์๋๊ฒฝ์ฐ, ์ํ list page๋ก redirect ์์ผ์ค๋ค.์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ผ๋ฉด, test@test.com(๊ด๋ฆฌ์๊ณ์ ) ์ผ ๊ฒฝ์ฐ์๋ ์ํ ๋ฑ๋ก ํ์ด์ง๊ฐ ์ ์ ๋ ๊ฒ์ด๊ณ , ๋น๋ก๊ทธ์ธ ๋ฐ ์ผ๋ฐ ์ฌ์ฉ์์ ๊ณ์ ์ผ ๊ฒฝ์ฐ์๋ list page๋ก ๊ณ์ redirect ๋์ด ์ ์์ด ๋ถ๊ฐํ ๊ฒ์ด๋ค.
ํ์ง๋ง, ์ ์์ด ๋์ง ์๋ ๊ฒ ๋ณด๋ค๋, ์ฐจ๋ผ๋ฆฌ ๋ฑ๋ก ๋ฒํผ์ด ๋ณด์ด์ง ์๋ ํธ์ด ๋ ๋์ ๊ฒ ๊ฐ์ ์จ๊ธฐ๋ ๋ฐฉํฅ์ผ๋ก(๊ด๋ฆฌ์๋ง ๋ณด์ฌ์ง๊ฒ) ๊ณ ๋ฏผ ํ ์์ ํด ๋ณด์๋ค.
- ๋ก๊ทธ์ธ ์ ์ธ์ ์ ๋ณด ์ถ๊ฐ ๋ฐ import(controllers > user.py)
= user๊ฐ is_admin์ผ ๊ฒฝ์ฐ true๊ฐ์ ์ถ๊ฐํ๋ค.
๐ ๋ก๊ทธ์์์ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
= is_admin์ ์ ๋ณด๋ฅผ ๋ ๋ ค์ค๋ค(false).
- is_admin session ๊ฐ ๊ตฌ๋ถ
๋น๋ก๊ทธ์ธ, ์ผ๋ฐ ๊ตฌ๋งค์ ๊ณ์ ์ผ๋ก ์ ์ ์์๋ ์ํ๋ฑ๋ก ๋ฉ๋ด ์์ฒด๊ฐ ๋ณด์ด์ง ์๊ฒ ๋๋ฉฐ, url ๋ก ์ ์์์๋ ๋ง์๋์์ผ๋ฏ๋ก ์๊ด์ด ์๋ค.
๊ด๋ฆฌ์์ ๊ฒฝ์ฐ์๋ง ์ ์์ ์ผ๋ก ์ ์์ด ๋๋ ๊ฒ์ด๋ค.
ํ์ฌ ํ ์คํธ๋ฅผ ์ํด ๊ถํ๊ตฌ๋ถ์ ์ ๋๋ก ์ ๋ฆฌํ์ง ๋ชปํ๋๋ฐ, ๋ค์ ์๊ฐ์๋ ์ ์ฉ์ด ํ์ํ ๋ถ๋ถ๋ค์ ๊ถํ์ ์ ์ฉ์์ผ๋ณด๊ฒ ๋ค.