작성
·
197
0
안녕하세요, 제로초님.
노드교과서 들으며 이것저것 수정해보다가 질문이 있어 질문을 남깁니다.
강의에서 passport를 사용하여 localStartegy를 구성하실때에는 db Model이 User 1개였는데,
Model을 2개로 늘리면(2개로 늘리려는 이유는 구인구직 사이트에서 구직자/사업자 이렇게 나뉘어 로그인을 하는것을 봐서 적용해보려고 합니다.) passport index.js를 어떻게 작성해야할지 모르겠어서 도움을 부탁드려요!
지금 저는 Model을 JobSeeker로 구현을 해놓았는데, 추가로 Model 1개 더 작성하고자 합니다.
Db 2개를 한개로 합쳐서 Db안에서 구분을 하는게 효율적일지, passport에서 Model 1개 더 추가 가능한지 감이 안와서
질문드립니다.
<<passport/index.js deserialize 부분>>
답변 1
0
궁금한 게 구직자/구인자 로그인을 하나의 라우터에서 동시에 처리하려고 하시는 건가요? 보통은 두 개의 라우터에서 처리하는 게 일반적이고, 그럴 경우 local 전략을 여러 개 넣으면 됩니다.
passport.authenticate('local.jobseeker')
passport.authenticate('local.peopleseeker')
이런 식으로 하고 use 부분도 두 개 등록하면 됩니다.
serializeUser에서 done(null, user.id) 이런 식으로 하시는 건가요?
serializeUser에서부터 수정되어야 합니다. done(null, { type: 'jobSeeker', id: user.id });
이런 식으로 객체를 넣으면 deserializeUser에서도 ({ type, id }, done) => {...} 이렇게 받을 수 있어서 구분하기 편할겁니다.
우선 라우터는 2개로 나누어서 진행을 하려고 합니다.
joobSeekerRouter.post("/login")
peopleSeekerRouter.post("/login")
authenticate, use 부분은 Strategy를 local 2개 구분하여 만드려고 합니다.
그런데 index.js/deserialize에서 JobSeeker, PeopleSeeker를 어떻게 구분지어서 사용해야할지 모르겠더라구요
제가 올려놓은 코드에서 Jobseeker , PeopleSeeker 2개를 구분하여 작성하는 방법이 궁금합니다.