inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

passport-local 확장에 대해서

228

dhj100

작성한 질문수 19

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 부분>>

passport.deserializeUser((id, done) => {
JobSeeker.findOne({ where: { id } })
.then((user) => {
// console.log("kk", user);
done(null, user);
})
.catch((err) => done(err));

});

mysql mongodb nodejs Sequelize

답변 1

0

제로초(조현영)

궁금한 게 구직자/구인자 로그인을 하나의 라우터에서 동시에 처리하려고 하시는 건가요? 보통은 두 개의 라우터에서 처리하는 게 일반적이고, 그럴 경우 local 전략을 여러 개 넣으면 됩니다.

passport.authenticate('local.jobseeker')
passport.authenticate('local.peopleseeker')

이런 식으로 하고 use 부분도 두 개 등록하면 됩니다.

0

dhj100

우선 라우터는 2개로 나누어서 진행을 하려고 합니다.

joobSeekerRouter.post("/login")

peopleSeekerRouter.post("/login")

authenticate, use 부분은 Strategy를 local 2개 구분하여 만드려고 합니다.

그런데 index.js/deserialize에서 JobSeeker, PeopleSeeker를 어떻게 구분지어서 사용해야할지 모르겠더라구요

제가 올려놓은 코드에서 Jobseeker , PeopleSeeker 2개를 구분하여 작성하는 방법이 궁금합니다.

0

제로초(조현영)

serializeUser에서 done(null, user.id) 이런 식으로 하시는 건가요?

serializeUser에서부터 수정되어야 합니다. done(null, { type: 'jobSeeker', id: user.id });

이런 식으로 객체를 넣으면 deserializeUser에서도 ({ type, id }, done) => {...} 이렇게 받을 수 있어서 구분하기 편할겁니다.

0

dhj100

아 그럼 type으로 분기처리를 하면 되겠네요!! 

그러면 serializeUser에서 type은 어디서 설정을 해야 할까요??

0

제로초(조현영)

type은 serializeUser 안에서 찾아서 넣으셔야겠죠.

0

dhj100

감사합니다. 알려주신대로 코드 적용했는데, 잘 구분되네요!! 

리눅스 노드 설치시 패키지

0

172

0

socket.js 에서 referer로부터 roomId를 가져올 때

0

926

3

스트리밍 방식으로 대용량 파일 업로드 & 다운로드 관련 질문

0

2297

2

a[title] 질문드립니다

0

386

1

리뉴얼 강의 및 공부 방법

0

589

1

jwt decode

0

1137

1

node.js 교과서 3판 질문드립니다

0

396

1

passport와 jwt

0

438

1

리뉴얼 강의

0

427

2

혹시 Node.js 교과서 3판 이북은 언제 나오나요?

0

359

1

몽고디비 사용자도 MYSQL부분을 들어야 하나요???

0

488

1

sql 쿼리 로그는 어떤 모듈이 작성하나요?

0

511

2

nunjucks res.render('error'); 작동을 안합니다.

0

518

1

질문있습니다.

0

348

1

multer 한글 파일 업로드시 파일명이 깨져요.

1

3543

1

수업자료는 어디있나요?

0

374

1

질문 있습니디

0

244

1

multer 사용시 file 외 name값은 못받나용?

0

429

1

코드 중복 부분 질문드립니다.

0

303

1

api 만드는 이유 질문드립니다.

0

292

1

Strategy의 done에 대해 질문드립니다.

0

373

1

안녕하세요 fs 권한 관련 질문드립니다

0

455

1

시퀄라이즈 연결질문...

0

510

2

res.setHeader vs res.cookie

0

1797

3