사용자 인증 미들웨어를 만들다가 const castError = new CastError(); 라는 오류를 만났다
try {
const { userId } = jwt.verify(tokenValue, secretKey);
User.findById({ userId }).then((user) => {
res.locals.user = user;
next();
});
} catch (err) {
res.status(401).send({
errMessage: "로그인이 필요합니다.",
});
return;
}
대략 이런 미들웨어 구문에서 id 값을 찾아서 res.locals에 담아주려고 하는데 id로 찾는 부분에서 문제가 일어난듯 했다.
구글링을해서 찾아보니 findById가 아닌 findOne으로 값을 찾으면 된다는 글을 보고
바로 적용했다.
try {
const { userId } = jwt.verify(tokenValue, secretKey);
User.findOne({ _id: userId }).then((user) => {
res.locals.user = user;
next();
});
} catch (err) {
res.status(401).send({
errMessage: "로그인이 필요합니다.",
});
return;
}
해결!
감사합니다.
'coding > Error' 카테고리의 다른 글
인스턴스 접속 에러 (0) | 2022.08.19 |
---|---|
외래키 설정 (0) | 2022.08.14 |
함수의 {return } (0) | 2022.08.04 |
SyntaxError: Unexpected token } in JSON at position 67 (0) | 2022.07.29 |
코딩 폴더 및 파일 이동시 오류 (0) | 2022.05.01 |