2021/07/07 수요일

TIL


오늘 한 일

  • 휴식
  • 로그인 회원가입 구조및 기능 가완
  • leetcord
    • Divide Two Integers. (medium)

오늘은...

작성하던 로그인 회원가입 구조 및 기능을 만들었다.

와 같이 개별 기능들을 구분하여 별도로 작성하였고,

import phash from "./components/passwordHash";
import rsalt from "./components/randomSalt";
import mkToken from "./components/makeToken";
import dbuser from "./dbcontroller/user/index";

			//중간 생략 //

router.post("/signin", dbuser.get(), phash, mkToken, (req, res) => {
  if (res.locals.password === res.locals.password) {
    res.cookie(`refreshToken`, res.locals.refreshToken, {
      maxAge: 24 * 6 * 60 * 10000,
      sameSite: "none",
      httpOnly: true,
      secure: true,
    });
    res.cookie(`iskakao`, false, {
      maxAge: 24 * 6 * 60 * 10000,
      sameSite: "none",
      httpOnly: true,
      secure: true,
    });

    res.status(200).json({
      message: "로그인 되었습니다.",
      accessToken: res.locals.accessToken,
    });
  } else {
    res.status(403).json({ message: "잘못된 비밀번호" });
  }
});

router.post(
  "/signup",
  upload.single("userImage"),
  rsalt,
  phash,
  dbuser.exist(false),
  dbuser.insert,
  (req, res) => {
    res.status(200).send("signup");
  }
);

와 같이 개별 기능들을 미들웨어로 사용하여 순차적으로 진행되게 하였으며 개별 진행에 따라 그에 맞는 기능만 진행하도록 구성하였다. 전체적으로 구조가 복잡해지고 번잡 한것 같긴하다. 물론 짧은 구조에 굳이 이런식으로 만들 필요는 없을 것이나, 그동안 구조자체가 실행부분에 몽땅 때려 밖은 구조다 보니 여러 단계를 거쳐야 하는경우에는 콜백처럼 안속에 결과에 안속의 결과를 얻어야하는 구조 였기에 그를 보완하고자 이렇게 잘라서 진행해보았다.

물론 그때에도 프러미스의 then과 catch 를 사용하여 순차적으로 진행되게 하기도 하였으나 그 경우 에러 생성이 catch 하나에 몰리는 결과를 가지기에 문제 발생시 어느부분 문제인지도 확인하기 힘들고 별도의 에러 처리 방식을 구형하기 힘들었으므로 미들웨어 방식으로 진행하였다.

좋은 웹페이지 즐겨찾기