-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
deserializeUser에대해서...
19.07.29 09:28 작성 조회수 96
0
로그인 성공시,
app.use(passport.initialize());
app.use(passport.session());
이거를 통해서, passport/index.js 에서의
passport.deserializeUser((id, done) => {
User.find({ where: { id } })
.then(user => done(null, user))
.catch(err => done(err));
});
이게 작동하잖아요.
serializeUser를 통해서 id를 세션에 저장을 해두었다고 하셨는데, passport.deserializeUser((id, done) 여기서, id 와 done 의 인자를 갖고있는 콜백함수인데,id와 done은 누가 입력을 해주는건가요...?
id 와 done이 잘 입력되서, .then(user => done(null, user))
done(null,user) 가 콜백으로 리턴되는거같은데, 이거는 도대체 어디에 리턴이 되는건가요...?
지금 user => done(null, user) 에게 콜백함수 맞죠?
(변수) => 리턴 이 함수 형태맞죠?
디시리얼라이즈 이후로, req.user에 저장이되는건가요?
시리얼라이즈 이후로 req.user에 저장이 되는게 아니였나요/?
헷갈리네요....
router.get('/', (req, res, next) => {
res.render('main', { // main.pug 렌더링
title: 'NodeBird', // main.pug에 있는 변수들
twits: [],
user: req.user, // 즉 done에서 성공시 in localStoragy 세션에 저장이됨 그러고 나서 로그인후 req.user로 접근가능.
loginError: req.flash('loginError'), //일회성 메세지들 보여주기위해 에러 넣음
});
});
답변을 작성해보세요.
답변 2