๐ Front End Developer ์ Back End ๋์ ๊ธฐ ! ๐
์ด ๊ธ์ PROJECT LION : ํธ์ฝ์น ๊ฐ์ฌ๋์ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉฐ ์ฐธ๊ณ ํ ๊ธ์ ๋๋ค.
์์ ์ค, ๊ฐ๋ฐ๊ณผ์ ์ ๋ฆฌ ๋ฐ issue๊ฐ ๋์๋ ๋ถ๋ถ๋ค์ ๊ณต์ ๋ฐ ๊ธฐ๋กํ๊ณ ์ ์์ฑํ๊ฒ ๋์์ต๋๋ค.
โ ๋ก๊ทธ์ธ ์ฌ์ฉ์์ ๋น๋ก๊ทธ์ธ ์ฌ์ฉ์ ๋ก ๊ตฌ๋ถ์ง์ ์ ์๋ค.
๋ก๊ทธ์ธ์ ํ ์ฌ์ฉ์๋ ์ํ์ ๊ตฌ๋งคํ๊ฑฐ๋ ๋ก๊ทธ์์์ ํ ์ ์์ง๋ง, ๋ก๊ทธ์ธ์ ํ์ง์์ ์ฌ์ฉ์๋ ์ํ์ ๋ณด๋ ๊ฒ๋ง ๊ฐ๋ฅํ๋ค.
์ด ๋ํ ๊ตฌ๋ถ ํ ์์ฒญ์ ์ ํํด์ผํ๋ค.
์์
์ ๊ตด๋ฌ๊ฐ๋ ๋ก์ง์ ์๊ฐํ ํ ์์
ํด ๋ณด๊ฒ ๋ค.
์ฐ์ ,
๋ก๊ทธ์ธ/๋น๋ก๊ทธ์ธ ์ฌ์ฉ์ > session ์กด์ฌ์ ๋ฌด์ ๋ฐ๋ผ ๊ตฌ๋ถํ ์ ์๊ฒ ๋ค.
ํ์ฌ ์ธ์ ์ผ๋ก ๋ก๊ทธ์ธ ๋์์ ์ ๋ก๊ทธ์์์ด ๋์ค๊ณ , ๋ก๊ทธ์์ ์ ๋ก๊ทธ์ธ์ด ๋ณด์ด๋๋ก ํด๋์๋ค.
์ด์ ๋ณ๋๋ก, session์ด ์ฒ๋ฆฌ๋์ง ์์ ๋ก๊ทธ์์ ๋ฒํผ์ ํ๋ ์์ฑํ์ฌ ๋ฏธ๋ก๊ทธ์ธ ์ํ์์ ๋ก๊ทธ์์์ ํด๋ฆญ ์ ๋ก๊ทธ์ธ ํ ์ด์ฉ๊ฐ๋ฅํ๋๋ก ๊ถํ์ ๋ถ์ฌํ ๊ฒ์ด๋ค.
๐งจ ๋ก๊ทธ์ธ ์ ์ ๊ตฌ๋ถ
- controllers > auth.py file ์์ฑ
= user controllers(controllers > user.py) ์์ ์ฌ์ฉํ์ฌ๋ ๋์ง๋ง, ๋ก๊ทธ์์ ๋ฟ๋ง์ด ์๋ ๋ฑ๋ก ๋ฐ ๊ตฌ๋งค์์๋ ์ฌ์ฉ๋ ์์ ์ด๋ฏ๋ก ๊ณตํต๋ ํจ์๋ก ์ฌ์ฉํด ์ค๋ค.
- ๋ก๊ทธ์ธ์ ์ฒดํฌํ ํจ์ ์์ฑ
๐ ๋น๋ก๊ทธ์ธ์ ๊ฒฝ์ฐ = ๋ก๊ทธ์ธ์ ํ๋์ง ์ํ๋์ง session์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ํ์ธ.
์ฆ, session์ user_id ๊ฐ์ด ์๋์ง ์๋์ง ๊ตฌ๋ถํ๊ณ , ๊ฐ์ด ์๋ค๋ฉด false๋ฅผ return(๋ก๊ทธ์ธ ํ ์ ์ ๊ฐ ์๋๋ค.)
๐๋ก๊ทธ์ธ์ ๊ฒฝ์ฐ = session์ ์๋user_id์ ๊ฐ์ ๊ฐ์ง๊ณ user๋ฅผ ์ฐพ๋๋ค.
- find_one ํจ์ ์์ฑ
= user_id๋ฅผ ๋ฐ์์ฃผ๊ณ , _id๊ฐ์ด user_id์ ๊ฐ์ user๋ฅผ ์ฐพ๊ฒ ๋๋ค.
๊ทธ ํ user๊ฐ ์๋ค๋ฉด false๋ฅผ returnํ๊ณ , ์กด์ฌํ๋ค๋ฉด user๊ฐ์ return ์์ผ์ค๋ค.
- auth.py > user ๊ฐ ์ ๋ฌ
= find_one ํจ์์ session id ๊ฐ์ด ๋ค์ด๊ฐ๋ฉด user๊ฐ ๋์ค๊ฑฐ๋ false๊ฐ ๋์ค๊ฒ ๋๋ค.check_login ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ต์ข ๊ฐ์ user ๋๋ false ์ผ ๊ฒ์ด๋ค.
- controllers > user.py -> check_login ํจ์ ์คํ
= check_login ํจ์ ์คํ์ ์ํด import ๋ ํฌํจ
- check_login์ ํ ๋๋ง๋ค ์ฌ์ฉํ ํจ์ ์์ฑ
= login page๋ก ์ด๋์ํค๊ธฐ ์ํ ํจ์ ์์ฑ
์ฌ๊ธฐ์ url_for ๋ด๋ถ์ signin_form ์ ๊ฒฝ์ฐ user controllers ์ ๋ฏธ๋ฆฌ ์์ฑํด ๋ ์ฝ๋์ด๋ค.
flash ๋ ์ถ๊ฐํ์ฌ alert ํ ์ด๋๋๋๋ก ์ฒ๋ฆฌํด ๋์๋ค.
- redirect_to_signin_form ํจ์ ํ์ฉ ๋ฐ import
= user๊ฐ ์๋ค๋ฉด redirect ํจ์ ์คํ ๋ฐ ๋ก๊ทธ์ธ page ์ด๋
- ๋ฏธ๋ก๊ทธ์ธ ์ ์ ๊ฐ ๋ก๊ทธ์์ ํด๋ฆญ ์ ํ์ธ
= ๋ก๊ทธ์ธ์ด ๋์ง ์์ ์ ์ ๊ธฐ์ else์ ๊ฑธ๋ ค flash ์คํ ๋ฐ ๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ด๋๋๋ค.
์ด๋ ๊ฒ ๋ก๊ทธ์ธ๊ณผ ๋น๋ก๊ทธ์ธ์ ๊ณตํต์ ์ธ ํจ์๋ฅผ ์์ฑํ์ฌ ๊ตฌ๋ถํ ์ ์๊ฒ ๋ง๋ค์ด ๋์๋ค.
๋ก๊ทธ์ธ ํ ์ฌ์ฉ๊ฐ๋ฅํ ํ์ด์ง๋ฅผ ๊ตฌ๋ถํ์ฌ ๊ถํ์ ๋ถ์ฌํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
๋ค์ ์๊ฐ์๋ ํ๋งค์(๊ด๋ฆฌ์)์ ๊ตฌ๋งค์๋ฅผ ๊ตฌ๋ถํ์ฌ ๊ถํ์ ๋ถ์ฌํด ๋ณด๊ฒ ๋ค.