inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] React로 NodeBird SNS 만들기

로그인 문제 해결하기

첫 로그인 후 req.user.id 사용이 어텋게 가능한지 궁금합니다.

274

쾌할한 전복

작성한 질문수 5

0


..// user.js
router.post("/login", isNotLoggedIn, (req, res, next) => {
  passport.authenticate("local", (err, user, info) => {

    // ... 
    return req.login(user, async (loginErr) => {
      if (loginErr) {
        console.error(loginErr);
        return next(loginErr);
      }
      const fullUserWithoutPassword = await User.findOne({
        where: { id: req.user.id },
        // ... 
      });
      return res.status(200).json(fullUserWithoutPassword);
    });
  })(req, res, next);
});

 

// index.js

const passport = require("passport");
const local = require("./local");
const { User } = require("../models");

module.exports = () => {
  passport.serializeUser((user, done) => {
    done(null, user.id);
  });


  passport.deserializeUser(async (id, done) => {
    console.log(`deserializeUser`)
    try {
      const user = await User.findOne({ where: { id } });
      done(null, user); // req.user안에 넣어줌
    } catch (error) {
      console.error(error);
      done(error);
    }
  }); 

  local();
};

첫 로그인 할 때는

serializeUser만 실행되고,

그 이후 요청 부터 deserialzeUser가 실행되어

req.user에 db 테이블에 user객체가 저장되는 걸로 이해했습니다.

첫 로그인 할 때는 deserializeUser가 실행이 안되어서 req.user가 저장이 안된 상태일텐데 어텋게

req.user.id로 fullUserWithoutPassword 에
값을 할당할 수 있는지 궁금합니다.

 

 

react redux node.js express next.js

답변 1

1

제로초(조현영)

req.login(user)를 할 때 사실 req.user = user도 일어납니다. 그래서 serializeUser에서 req.user를 찍어봐도 req.user가 나옵니다. 로그인 이후 라우터부터는 req.user가 비어있어서 deserializeUser의 done 값으로 채워넣습니다.

0

쾌할한 전복

감사합니다!

넥스트 버젼 질문

0

78

2

로그인시 401 Unauthorized 오류가 뜹니다

0

89

1

무한 스크롤 중 스크롤 튐 현상

0

175

1

특정 페이지 접근을 막고 싶을 때

0

103

2

createGlobalStyle의 위치와 영향범위

0

96

2

인라인 스타일 리렌더링 관련

0

91

2

vsc 에서 npm init 설치시 오류

0

146

2

nextjs 15버전 사용 가능할까요?

0

158

1

화면 새로고침 문의

0

121

1

RTK에서 draft, state 차이가 있나요?

0

153

2

Next 14 사용해도 될까요?

0

452

1

next, node 버전 / 폴더 구조 질문 드립니다.

0

349

1

url 오류 질문있습니다

0

211

1

ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out

0

373

1

sudo certbot --nginx 에러

0

1275

2

Minified React error 콘솔에러 (hydrate)

0

470

1

카카오 공유했을 때 이전에 작성했던 글이 나오는 버그

0

247

1

프론트서버 배포 후 EADDRINUSE에러 발생

0

327

1

npm run build 에러

0

518

1

front 서버 npm run build 중에 발생한 에러들

0

381

1

서버 실행하고 브라우저로 들어갔을때 404에러

0

338

2

css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.

0

288

1

팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.

0

239

2

해시태그 검색에서 throttle에 관해 질문있습니다.

0

201

1