인프런 커뮤니티 질문&답변

반가우면반갑다고해님의 프로필 이미지
반가우면반갑다고해

작성한 질문수

React로 NodeBird SNS 만들기

5-12. passport 총정리와 실제 로그인

몇가지 질문 있습니다.

작성

·

182

0

1.서버쪽에서 req.user는 프론트에서 요청한 정보를 받을때 사용하는 건가요?

  서버쪽에서 프론트로 보낼땐 res.user로 하는거구용?

2. 이번 로그인전략을 글로 풀이하자면..

   프론트에서 id와 쿠키를 서버쪽으로 보내면(요청) 서버는 쿠키를 받아 검사후 프론트쪽에있는 쿠키 정보와 비교해서

   id를 찾아내고 id를 통해서 user를 찾아내는데 이 과정에서 local.js와 passport->index,js 파일이  콜백함수로 왔다갔다 한다..로 이해했는데 맞나요?

3. local.js 에서

passport.use(

    new localStrategy(

      {

        usernameField: "userId", // req.body.userId

        passwordField: "password" // req.body.password

      },

usernameField: "userId" , passwordField: "password 은 프론트에서 요청온 정보 userId,password를  각각 usernameField: 와 passwordField: 에 담은건가요?

async (userId, password, done) => { } 에서 사용하는거구요?

usernameField: 와 passwordField:  변수명은 임의로 지어줄수있나요?

4.랑합니다.

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

1. req.user는 프론트에서 보낸 쿠키에 따라서 서버가 그 쿠키를 보고 데이터베이스에서 사용자 정보를 가져와서 만든 객체입니다.

2.   프론트에서 쿠키를 서버쪽으로 보내면(요청) 서버는 쿠키를 받아 검사후 프론트쪽에있는 쿠키 정보와 비교해서   id를 찾아내고 id를 통해서 user를 찾아내는데 이 과정에서 local.js와 passport->index,js 파일이  콜백함수로 왔다갔다 한다..로 이해했는데 맞나요?

여기서 프론트는 쿠키만 보내고 서버쪽에 쿠키이름과 id가 저장되어 있습니다. 쿠키를 받아서 쿠키이름을 보고 id를 찾아낸 후에 데이터베이스 조회를 통해 req.user를 만들어내는 겁니다.

3. req.body에 들어있는 userId와 password인데 얘네들은 프론트에서 보내는 데이터(form input의 name과 일치해야 함)입니다. usernameField와 passwordField의 이름은 고정입니다.

반가우면반갑다고해님의 프로필 이미지
반가우면반갑다고해

작성한 질문수

질문하기