๊ธฐํ๋ถํฐ ๋ก๊ณ ์ ์ ๋ฑ์ ํจ๊ป ์์ ํ๊ณ ์์ด์
์์ง ํ๋ก ํธ๊ฐ ๋์ค์ง ์์์ง๋ง ๋ฐฑ์๋ api ๋ช ์ธ๋ฅผ ์ ๋ฆฌํ๊ณ api๋ฅผ ์์ ํ ์ ์์๋ค.
์ด๋ฒ ํ๋ก์ ํธ ์งํํ๋ฉฐ ์์ ํ๋ฉด์ ์ด๋ ค์ ๋ ์ ์ ๋๋์๋ณด์์ผ๊ฒ ๋ค.
- guards
๋๋ ๊ทธ๋ ๊ณ ๋ค๋ฅธ ๋ฐฑ์๋๋ถ๋ ๊ทธ๋ ๊ณ nest๋ฅผ ์ ํ ์ ์ด ์๊ธฐ ๋๋ฌธ์ express์์ middleware๋ก ์ ์ ์ authentication์ ๊ฒ์ฌํ์๋๋ฐ
nest์์๋ ์๋ช ์ฃผ๊ธฐ๊ฐ ์กด์ฌํ์ฌ guards๋ก ์ธ์ฆ์ ๊ฒ์ฌํ ์ ์๋ค.
๊ทธ ์ธ์ interceptor, pipe๋ฑ์ ๊ฑฐ์ณ ์ค์ ์๋น์ค๋จ์ผ๋ก ๋์ด์ฌ์์๋ค.
์คํ๋ง๋ถํธ์ ์๋นํ ํก์ฌํ๋ค๊ณ ํ์ง๋ง ๋๋ ์คํ๋ง๋ถํธ๋ฅผ ์ ๋ชจ๋ฅด๊ธฐ๋๋ฌธ์ ๊ตฌ๋ฆ์ฒ๋ผ ๋ฅ๋ฅ ๋ ์๋ ๊ฐ๋ ์ ์ก๊ธฐ๊ฐ ํ๋ค์๋ค.
์ด๋ด๋ ๋ณดํต์ ์์ ๋ฅผ ํตํด ๊ฐ๋ ์ ์ก๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค.
guards์์๋ ์ ์ ์ธ์ฆ ๊ฒ์ฌ, interceptor์์๋ s3๋ฑ์ ํ์ผ์ ์ฌ๋ฆฌ๊ณ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ๋ ํ์, pipe ์์๋ dto์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ๋ฑ์ ์์ ๊ฐ ์ฐ์ผ ์ ์๋ค.
api๋ก ๋์์ ์ ์ํ์์ผ๋ ์ธ์ฆ์ ๊ฒ์ฌํ๋ guards๋ฅผ ์ ์ํ๋ ๊ฒ์ด ์ฝ๊ฒ ๋์ง ์์๋ค.
๊ฐ๋๋ ์ง์ ๊ตฌํ๋ ๊ฐ๋ฅํ์ง๋ง passport-jwt ์ ๋ต์ ์ฌ์ฉํ ์๋์๋ค.
jwt token์ ๋ฐ๊ธํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํ๊ณ ์์ฒญ์ ๋ณด๋ผ๋๋ง๋ค ์ด ํ ํฐ์ ๊ฒ์ฌ๋ฅผ ํด์ค๋ค.
passport-jwt๋ก ๋ก๊ทธ์ธ์ ์ง์ ๊ตฌํํด๋ณธ ์ ์ ์์ด์ ์ผ๋จ passport ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์ง๋ ๊ฐ์๋ฅผ ์ดํด๋ณด์๋ค.
์ํ์ฝ๋ฉ, ์ ๋ก์ด ๊ฐ์๋ฅผ ๋ณด๋ฉด ํ ํฐ์์ ์ ์ ์ ์ ๋ณด๋ฅผ ๋ถ๋ฌ์ค๊ณ ๋ก๊ทธ์ธ์ด ๋๋ฉด ํ ํฐ์ ๋ฐ๊ธํด ์ฃผ๋ ๋ฑ์ ๋ชจ๋์ ์ดํดํ๋ ๊ณผ์ ์ด ํ์ํ๋ค.
์์ ๊ฐ express๋ก ๋์ด์์ด์ ์ด๋ฅผ nest์ ๋์ ํ๊ธฐ ์ํ์ฌ ๋ช๊ฐ์ง์ ์ปค์คํ ์ด ํ์ํ๋ค.
์ด ์ปค์คํ ์ ์ ๋ก์ด๋์ ๊ฐ์๋ฅผ ๋ณด๋ฉฐ ๋์์ ๋ฐ์๋ค.
nest๋ module๋ก ๋์ํ๊ธฐ๋๋ฌธ์ ๋ชจ๋ ๋์์ ๋ชจ๋๋ก ๋ณํํด์ฃผ์๋ค.
์ฌ์ค ์ด ๋ถ๋ถ์ ์์ง๋ ํท๊ฐ๋ฆฌ์ง๋ง ๋๋ ์์ฆ ๋ค์คํธ๊ฐ ์ข์์ก๊ธฐ๋๋ฌธ์ ์ฐจ์ฐจ ๋ค์คํธ์ ์ ์ฒด๋ฅผ ์ดํดํด๋ณด๊ฒ ๋ค.
'node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DND 5๊ธฐ 8์ฃผ์ฐจ - ์ต์ข ๋ฐํ (0) | 2021.08.29 |
---|---|
DND 5๊ธฐ 7์ฃผ์ฐจ - ๋ฅ์คํธ ํ๋ ๋ฐ ํ๊ณ (0) | 2021.08.16 |
DND 5๊ธฐ 5์ฃผ์ฐจ - api์ ์ (0) | 2021.07.31 |
DND 5๊ธฐ 4์ฃผ์ฐจ - ์ค๊ฐ์ ๊ฒ (0) | 2021.07.24 |
DND 5๊ธฐ 3์ฃผ์ฐจ - ๋ฐฑ์๋ ์ ๊ฒ (0) | 2021.07.16 |