inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

노드 리액트 기초 강의 #12 토큰 생성 with jsonwebtoken

이메일 오류

286

명원

작성한 질문수 10

0

https://github.com/myeongwon2/first

깃헙입니다

app.post('/login', (req, res) =>{
  //요청된 이메일을 데이터베이스에서 있는지 찾는다.
  User.findOne({ email: req.body.email }, (err, user) => {
  if(!user){
    return res.json({
      loginSuccess: false,
      message: "제공된 이메일에 해당하는 유저가 없습니다."
    })
  }

   //요청된 이메일이 데이터베이스에 있다면 비밀번호가 맞는 비밀번호 인지 확인
  user.comparePassword(req.body.password, (err, isMatch) =>{
    if(!isMatch)
    return res.json({ loginSuccess: false, message: "비밀번호가 틀렸습니다."})
    
  //비밀번호 까지 맞다면 토근을 생성하기.
  user.generateToken((err, user)=>{
    if(err) return res.status(400).send(err)
    
    //토큰을 저장한다. 어디에? 쿠키, 로컬스토리지
    res.cookie("x_auth", user.token)
    .status(200)
    .json({ loginSuccess: true, userId:user._id}) 
  })
  })
})
})
userSchema.methods.comparePassword = function(plainPassword, cb){
    //plainPassword 1234567 암호화된 비밀번호 ~
    bcrypt.compare(plainPassword, this.password, function(err, isMatch){
        if(err) return cb(err),
        cb(null, isMatch)
    })
}


userSchema.methods.generateToken = function(cb){
    var user = this;
    //jsonwebtoken을 이용해서 토큰을 생성
    var token = jwt.sign(user._id, 'secretToken')
    //user._id + 'secretToken' = token
    //->
    //'secretToken' -> user._id
    user.token = token
    user.save(function(err, user){
        if(err) return cb(err)
        cb(null, user)
    })
}

위가 index.js인데 이메일부터 false가 나오는데 뭐가 틀린건가여 아래는 User.js입니다

 

 

 

nodejs react

답변 2

0

저도 비슷한 에러였는데 index.js 에 아래처럼 선언이 안되어있어서 나는 문제였더라구요.. 혹시라도 도움이 될까 싶어 남겨봅니다.

app.use(bodyParser.json());

0

John Ahn

안녕하세요 ! 

comparePassword 메소드에 

if(err) return cb(err);
 

마지막 , ==> ; 이걸로 바꿔주세요 ~ 

그리고 getnerateToken 메소드에서도 

var token = jwt.sign(user._id.toHexString(), 'secretToken')
 

이렇게 바꿔주세요 ! 
수고하세요 !

 

0

명원

둘다 바꿨는데 오류뜨는데 this값이 없는거 같은데 이걸 어떻게 해야하는지 모르겠네요 ㅠㅠ

깃 이메일이랑 비번이 필요하다고 하네요

0

54

1

404 에러

0

120

1

34강 인증 체크에서 element 사용 때문에 에러나시는 분들 이렇게 하심 됩니다.

0

138

1

로그인, 로그아웃, 토근 작동 안 함

0

257

0

9강 오류 어떻게 해결하나요?

0

198

1

localhost 에서 연결을 거부했습니다.

0

1972

4

포스트맨에서 true가 안떠요

0

157

1

왜 안되나요

0

133

1

몽고db 연결 오류가 납니다 위에껀 입력한 코드, 아래껀 터미널이에요

0

250

1

로그아웃 401 에러(Unauthorized)

0

519

2

암호가 해싱되지 않고 입력값 그대로 db에 저장되는 문제

0

160

1

7강중에서

0

177

2

User.findByToken is not a function

0

215

1

루트 디렉토리

0

282

1

useState

0

570

1

프록시 잘 설정했는데도 404 오류 뜨는 분들

5

906

6

webpack 관련 에러 질문

0

225

1

리액트 관련 질문

0

282

1

14강 로그아웃 안됨

0

325

1

mongoDB 데이터 확인하는 법

0

414

1

postman 에러

0

297

1

선생님 리덕스를 사용하면 어떠한 부분이 좋은지 알 수 있을까요?

0

240

1

다음과 같은 에러들이 발생합니다.

0

283

1

14강 로그아웃 기능 구현시 postman에서 Cannot POST 오류가 뜹니다.

0

386

1