인프런 커뮤니티 질문&답변

릴롱궤님의 프로필 이미지
릴롱궤

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

노드 리액트 기초 강의 #13 Auth 기능 만들기

질문

작성

·

155

1

모델에서 User.js 안에서 this가 언디파인드로 떠서

그냥 미들웨어 안에서 해결했는데  이렇게 해도 괜찮을까요?

const auth = (reqresnext=> {
  const token = req.cookies.x_auth;
  jwt.verify(token"secretToken", (errdecoded=> {
    if (errthrow err;
    User.findOne({ _id: decoded, token: token }, (erruser=> {
      if (errreturn res.json({ success: falseerr });
      if (!userreturn res.json({ isAuth: false, error: true });
      req.token = token;
      req.user = user;
      next();
    });
  });
}

답변 3

0

제 예상에는 User.js 메소드 정의하실 때 화살표함수로 표현하셔서 그 안에 this가 user를 못 받고 undefined가 떳을 수도 있을거 같아요. 

0

저도 똑같이 나왔었는데 

User.js 에서 

const user = this;

const userInfo = this;

로해서 콜백메소드에 userInfo를 넘겨줬더니 정상적으로 작동했어요 ㅎㅎ

0

John Ahn님의 프로필 이미지
John Ahn
지식공유자

아  this가 왜 undefined가 나오는지 의문이네요 ...

아래에   req.token = token 위에 

console.log(token)해서  토큰 잘가져오는지 확인해보시구

req.user = user 위에 

console.log(user) 해서 유저 정보도 잘 가져오는지 

확인해보시구  잘가져온다면 그렇게해도 문제는 없습니다 ^^ 

릴롱궤님의 프로필 이미지
릴롱궤

작성한 질문수

질문하기