smilejakdu / node-watcha

0 stars 0 forks source link

jwt verify #3

Open smilejakdu opened 3 years ago

smilejakdu commented 3 years ago

jwt.verify

const isLoggedIn = (req: Request, res: Response, next: NextFunction) => {
  try {
    if(!req.headers){
      return res.status(419).json({code: 400,message: "does not exist headers"});
    }
    let decode = jwt.verify(req.headers.authentication, jwtObj.secret); // 여기서 에러발생
    console.log("middleware decode : " , decode);
    req.decoded = decode; // 에러발생
    next();
    // 인증 실패
  } catch (error) {
    // 유효기간이 초과된 경우
    if (error.name === "TokenExpiredError") {
      return res.status(419).json({code: 419,message: "expired token"});
    }
    // 토큰의 비밀키가 일치하지 않는 경우
    return res.status(401).json({code: 401,message: "invalid token"});
  }
};

에러가 발생하고있는데 , 아마 jwt.verify 메서드에 대한 에러같다. passport-local 처럼 declare 를 해줘서 typing 을 해야할것같다.

smilejakdu commented 3 years ago

2 two ways

  1. req: any -> 권장사항이 아님
  2. declare 를 한다.
  3. interface 를 만들어서 export 한다.

우선... req:any 로 하고 나서 차후에 바꾸도록한다.