• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

post 등록 오류 질문드립니다

21.07.28 23:11 작성 조회수 189

0

안녕하세요 . 

강사님께서 req.user가 deserializedUser가 실행되면서 생성된다고 강의에서 말씀하셨는데, 게시글 등록 요청을 보내면, req.user가 undefined가 로그에 찍혀서

강사님 깃헙에 들어가 passport 관련 부분 긁어왔는데도 deserializeUser가 실행이 되지 않아 질문드립니다.

답변 3

·

답변을 작성해보세요.

1

로그인 유지가 안 되고 있을 가능성이 제일 높습니다. 로그인 후 새로고침 시 로그인이 유지되나요?(그에 앞서 로그인 유지 부분 진도가 나간 상황인가요?)

0

강사님께서 답변주신대로 현재 문제가 로그인이 유지가 되지 않아서 발생하는게 맞는것 같아 해결할 수 있을거 같습니다.

늦은 시간까지 신경 써주셔서 감사합니다,

0

새로고침하면 로그인이 풀립니다.

현재 로그인 진행 상황입니다.

// 로그인
router.post("/login", isNotLoggedIn, (req, res, next) => {
  passport.authenticate("local", (err, user, info) => {
    if (err) {
      // 서버 쪽 에러
      console.error(err);
      return next(err);
    }
    if (info) {
      // 클라이언트 에러
      return res.status(401).send(info.reason);
    }
    return req.login(user, async (loginErr) => {
      if (loginErr) {
        console.error(loginErr);
        return next(loginErr);
      }
      const userWithoutPassword = await User.findOne({
        where: {
          id: user.id,
        },
        attributes: {
          exclude: ["password"],
        },
        include: [
          {
            model: Post,
          },
          {
            model: User,
            as: "Followings",
          },
          {
            model: User,
            as: "Followers",
          },
        ],
      });
      // res.setHeader('Cookie', 랜덤키)
      // console.log("비밀번호가 없는 유저 정보", userWithoutPassword);
      return res.status(200).json(userWithoutPassword);
    });
  })(req, res, next);
}); // 로컬 전략 실행

쿠키 문제입니다. 쿠키가 설정이 안 되는 것인데요. 네트워크탭 들어가서 login요청 눌렀을 때 set-cookie가 있는지와 그게 application탭의 cookie에도 기록되는지 파악이 필요합니다. 또한 getServerSideProps에도 쿠키 설정하는 코드가 있는지도요.

상세한 설명 감사합니다!