inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]

안녕하세요

해결된 질문

186

최현성

작성한 질문수 6

0

안녕하세요 강의를 다 완강하고 프론트가 SSR인 템플릿 엔진으로 구성되어 있던  노드 서버를 리팩토링 중에 있습니다.

궁금한게 있어서  여쭈어 봅니다.

관리자 페이지를 따로 구성하려고 하는데, SPA 에서는 접근 권한을 어떻게 설정하는게 좋은가요?

유저의 role 을 다르게 설정하여 라우팅을 관리하는것 같은데, SPA의 특성상 모든 페이지를 다 받아 오는것이니 충분히 클라이언트에서 state에 있는 role 을조작이 가능할 것 같다는 생각이 드는데, 이 경우 백엔드에서 한번 더 필터링이 필요하다 생각됩니다. 선생님은 어떠한 식으로 실무에서 서버에서 거르시는지 궁급합니다.

연장선에 있는 이야기 같은데, 현재 passport를 이용하여 session을 캐싱하여 사용하고 있습니다. 이 경우 hoc를 이용하여 페이지 라우팅 마다 Axios를 통한 http response 값에서 리덕스 스토어에 dispatch 할 때, body 값인 payload: request 뿐만 아니라 cookie 값도 따로 리덕스 스토어에 저장해서 관리하면 되는 걸까요?

감사합니다!

redux mongodb react 웹앱 nodejs

답변 2

0

최현성

감사합니다! 강의 덕분에 실력이 많이 늘었어요 ~! 좋은하루되세요 :)

0

John Ahn

안녕하세요 ^^  

되게 멋있으시네요 !! 
우선  프론트에서 필터링 같은경우는 현재 하고 있듯이 라우팅 제한으로 하시면 되시고,
백엔드에서는 따로 middleware를 만드셔서 필터링이 가능합니다 ^^ 

현재 여기서는 auth 라는 미들웨어를 만들었잔아요 ?
거기에 하나더 admin이라는 미들웨어를 만들수 있겠네요 ! 

middleware 폴더 안에 

admin.js 라는 파일을 만든후에 

let admin = (req,res,next) => {
if(req.user.role === 0 ){
return res.send('관리자만 사용 할수 있는 기능입니다.')
}
next()
}

module.exports = { admin }

//if you want to make more roles
// if(req.user.role === 1 ){
// return res.send('you are not allowed, get out now')
// }

이런식으로  role에 따라서 관리해주시면 됩니다. 

그래서 이 미들웨어를 

router.post("/updateEmail", auth, admin, (req, res) => {

이런식으로 적용해주시면 됩니다 ! 

아 그리고 cookie 는 저장 위치는 개인의 선호에 따라  달리 하셔도 됩니다. 
리덕스에 저장하셔도 되고 기본적으로 저장되는 곳에 해서 관리하셔도 됩니다 ~ ! 

강의 내용은 훌륭하나, 환경 설정 오류 때문에 진도를 나갈 수 없습니다. 20년 버전 강의.

0

60

1

강의자료는 어디서 볼 수있나요??

0

66

1

이 쇼핑몰 만들기 강의는 관리자페이지 만드는건 없나요

0

113

2

웹에서 실시간 코드반영이 안돼요

0

120

1

app.use질문

0

64

1

강사님께 어떻게 직접질문할수있어요??

0

75

1

const함수같은거 기초강의는 어디있나요

0

81

2

리덕스 참조챕터가 어딨어요? 미리듣고오라는데요

0

81

2

강의가완전 오래되서 다 틀리네 app.jsx도 tailwind css 다틀림 무책임함

0

68

1

개발자도구에 redux란이 없어요

0

88

1

npx tailwindcss init -p 에서 계속 에러나요

0

92

1

쇼핑몰기능중 찜하기 기능은 어떻게 구현하나요

0

138

2

강의하다 줌으로 설명가능한지좀 정확히 알려주세요. 이 선생님 정책이 어떻게 되는데요. 직접 연락할 메일이라도 알려주세요

0

43

1

도표 강의 자료 열람 불가능

0

109

1

tailwindcss를 vite에서 이용하는 방식이 바뀐것 같습니다.

0

1130

2

eslint 설정 후 오류가 납니다.

0

221

1

오버로드 오류

0

149

1

VSCode에서 save를 할 때, landingpage의 useEffect가 실행되는 문제에 대하여

0

169

1

dispatch(logoutUser()) 실행시 dispatch(authuser())도 함께 실행되는 문제

0

228

2

logout할 때, server로 요청을 보내서 authUser middleware를 통과하도록 하는 이유?

0

195

1

webkit-text-size-adjust 오류

0

314

1

does not provide an export named 'userReducer'

0

216

2

빌드 배포

0

140

1

삭제 예정 강의는 언제 삭제 되나요? 저것때문에 수강완료를 못하면 회사에서 비용을 청구한다고 합니다~

0

220

2