오늘의 목표

더보기

✔️ 팀 프로젝트

 


⏱️ 오늘의 일정

팀프로젝트


📜 팀프로젝트

 

길고 길었던 팀프로젝트가 하루 남았다.

발표일은 이번주 수요일로, 화요일에 최종적으로 프로젝트를 리뷰하고, 발표 자료를 준비할 예정이다.

 

오늘은 로그아웃 기능을 추가했다.

로그아웃 기능을 추가하기 위해 유저 테이블에 isLogin이라는 변수를 추가해줬다.

isLogin은 bool 변수 값으로, 뜻처럼 로그인 여부를 나타낸다.

usersRouter.post("/SignOut", async (req, res, next) => {
  const { email } = req.body;  

  const LogOutReqUser = await prismaUser.user.findFirst({
    where: {
      email: email,
    },
  });

  if (!LogOutReqUser) {
    return res
      .status(404)
      .json({ message: `${email}은 존재하지 않는 이메일입니다.` });
  }

  await prismaUser.user.update({
    data: {
      isLogin: false
    },
    where: {
      id: LogOutReqUser.id
    }
  })
});

 

유저가 로그아웃 버튼을 클릭하면 SignOut로 들어와서 로그아웃 기능을 수행한다.

 

 

게임 플레이 버튼에도 로그인 확인 기능을 추가했다.

// 플레이 버튼 클릭
    document.getElementById("playButton").addEventListener("click", async () => {
      const accessToken = localStorage.getItem("authorization");
      if (accessToken !== null) {
        const response = await fetch("/TowerDefence/GamePlay", {
          method: "post",
          headers: {
            "Content-Type": "application/json",
            authorization: accessToken
          }
        });

        const s2cGamePlayResponse = await response.json();
        if (s2cGamePlayResponse.status === 201) {
          document.querySelector(".button-container").style.display = "none";
          document.getElementById("gameCanvas").style.display = "block";

          import("./src/game.js");
        }
        else if (s2cGamePlayResponse.status === 401) {
          window.location.href = "/index.html";

          alert(s2cGamePlayResponse.message);
        }

      }
      else {
        alert("로그인 하고 게임 플레이를 누르세요");
      }
    });

 

GamePlay 주소로 가서 게임플레이 요청한 대상이 로그인 중인지 확인하고, 로그인 중인 경우에만 게임 화면으로 이동하도록 수정했다.

+ Recent posts