PassportJS Google OAuth 전략에서 일부 이상한 이유로 사용자 ID를 직렬화하여 브라우저로 보내 쿠키를 보내면 ID를 반환하지 않고 역 직렬화합니다. 당신은 몽구스를 사용하는 경우passportjs google oauth2 strategy
app.use(cookieSession({
maxAge: 24 * 60 * 60 * 1000,
keys: 'dkfehfhgddf'
}));
PassportJS Google OAuth 전략에서 일부 이상한 이유로 사용자 ID를 직렬화하여 브라우저로 보내 쿠키를 보내면 ID를 반환하지 않고 역 직렬화합니다. 당신은 몽구스를 사용하는 경우passportjs google oauth2 strategy
app.use(cookieSession({
maxAge: 24 * 60 * 60 * 1000,
keys: 'dkfehfhgddf'
}));
아래에, 당신은 당신의 코드에서 실수를 한 내가 console.log
사용자가 세부 사항으로 이동하려면 undefined
,
passport.deserializeUser((id, done) => {
User.findById(id).then((user, done) => {
console.log(user);
done(null, user);
});
});
을 반환 할 때 때문에 내 쿠키가됩니다 예기치 않은 동작이 발생합니다.
약속 버전의 findById()
기능을 사용하려는 경우 나중에 .exec()
으로 전화하여 조치를 보내야합니다. 또한 deserializeUser
의 done
콜백이 숨겨져 호출되지 않습니다.
passport.deserializeUser((id, done) => {
User.findById(id).exec()
.then(user => {
if (user) {// user may be null
done(null, user);
} else {
done(new Error("User not found"), null);
}
})
.catch(error => {
done(error, false);
});
});
감사합니다. 글쎄 그것은 내가 console.log id가 mongo에 반환했을 때 브라우저에서 아무것도 반환하지 않는다. 따라서 db는 쿼리하기 위해 id를받지 못합니다. –
당신이 MongoDB를에서 사용자 데이터를 가져 몽구스를 사용하고 있습니까 : 여기
는 그것이 작동하는 방법이다? –
예. 설명해 주셔서 감사합니다. mongodb –