인프런 커뮤니티 질문&답변
passport를 이용한 로컬 로그인 구현중 프론트가 변하지 않음
작성
·
239
·
수정됨
0
강의 보면서 passport를 이용해 로컬 로그인 구현중이지만 로그인을 해도 <% if user %>로 분기처리한 부분이 작동하지 않고 redirect 해도 동일한 화면만 보입니다.
소스코드는 github에서 가져와서 동일할 것입니다.
제가 원인을 찾아보던중 passport 전략의 마지막 부분이라 할 수 있는 serializeUser으로 user가 제대로 done을 통해 넘어가지 못했나 싶어 serializeUser에서 console.log(user.id)를 밑에 사진처럼 시도 해봤지만 문제 없었습니다.
module.exports = () => {
//serializeUser. 로그인 시 실행
passport.serializeUser((user, done) => {
console.log(user);
done(null,user.id); //session에 저장하고 싶은 정보 = user.id
});
//deserializeUser. 매 요청 시 실행. serUser에서 done의 두번째 인수(=user.id)가 매개변수(=id)
passport.deserializeUser((id,done) => {
//db에서 아이디로 유저를 찾고
User.findOne({ where : {id}})
.then(user => done(null, user)) //user를 req.user에 저장
.catch(err => done(err));
});
local();
kakao();
};그러면 마지막 done(null,user.id)에서 세션으로 제대로 유저 아이디를 못 올려주고 있는거 같은데 뭐가 문제인지 모르겠습니다. 그리고 참고로 2번이상 로그인을 시도할 시 뷰는 안변하지만 쿼리에 '로그인한 상태입니다'라고 에러메세지가 뜹니다.
그리고 참고로 app.js에서 아래와 같이
initialize와 sessino은 세션 생성후 적용했습니다
app.use(session({
resave: false,
saveUninitialized: false,
secret: process.env.COOKIE_SECRET,
cookie: {
httpOnly: true,
secure: false,
},
}));
app.use(passport.initialize());
app.use(passport.session());답변
답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!




