20.01.17 백엔드 / serializeUser 와 deserializeUser

sykim·2020년 1월 17일
0

serializeUser

사용자 정보 객체를 세션에 아이디로 저장

    passport.serializeUser((user, done) => {
        return done(null, user.id);
    });
  • 매개변수로 user를 받아 done 함수에 두번째 인자로 user.id를 넘긴다. 이렇게 id만 저장하면 세션 용량이 커지는 걸 막을 수 있기 때문.

deserializeUser

세션에 저장한 아이디를 통해서 사용자 정보 객체를 불러옴

    passport.deserializeUser( async (id, done) => {
        try {
            const user = await db.user.findOne({
                where : { id },
            });
            return done(null, user);
        } catch (e) {
            console.error(e);
            return done(e);
        }
    });
  • passport.session() 미들웨어가 이 메서드를 호출
  • serializeUser에 저장했던 id를 받아서 데이터베이스에서 사용자 정보를 조회
  • 조회한 정보를 req.user에 저장
profile
블로그 이전했습니다

0개의 댓글