728x90
반응형

1. 문제점

오늘도 프로젝트에 필요한 HTML을 작성하고,

다른 팀원이 작성한 기능들은 어떻게 만들었는지 궁금했다.

 

2. 시도해본 것들

 

3. 해결과정

깃에서 git pull 받은후,

코드에 일일히 주석을 달아가면서 내용을 분석하고 있다.

 

4. 알게 된 점

강의를 듣고 개념공부하는 것도 좋지만

역시 코드를 뜯어보는게 직접 코딩하는 것보다 많은 도움이 되는 것 같다.

// 유저 로그인 페이지
router.post("/login/guest", async (req, res) => {
  // body에서 입력받은 로그인 아이디와 비밀번호를 가져온다
  const { login_id, login_pw } = req.body;

  try {
    // Guest데이터에서 로그인아이디가 로그인 아이디인 것에 대한 정보들을 guest라는 변수에 넣는다
    const guest = await Guest.findOne({
      where: { login_id },
    });
    // 입력받은 로그인 비밀번호와 db에 있는 로그인 비밀번호가 같은지 체크한 값을 pwCheck에 넣는다. compare = 트루펄스 반환
    const pwCheck = await bcrypt.compare(login_pw,guest.login_pw);
    // 로그인 아이디가 없는 값이거나 비밀번호 체크값이 없다면 에러문구 반환
    if (!guest || !pwCheck) {
      return res
        .status(412)
        .send({ errorMessage: "닉네임 또는 패스워드를 확인해주세요." });
    }
    // 로그인 아이디와 손님 아이디를 jwt에 등록하여 token이라는 변수값에 담아둔다
    const token = jwt.sign(
      { login_id: login_id, guest_id: guest.guest_id }, //paylord
      SECRET_KEY,
      {
        expiresIn: "1h",
      }
    );
    // ??? "token"은 무슨 의미지, 변수 token은 쿠키화 한다
    res.cookie("token", token);

    return res.json({ "token": token });
  } catch (err) {
    return res.status(400).send({ errorMessage: "로그인에 실패하였습니다." });
  }
});
module.exports = router;

 

728x90
반응형

+ Recent posts