인프런 커뮤니티 질문&답변
bcrypt.compare 함수 부분의 매개변수 콜백함수 isMatch는 boolean으로 반환되는 것이 아닌가요?
작성
·
299
0
userSchema.methods.comparePassword= function(plainPassword, cb){//cb는 (err,isMatch)이다.
//plainPassword 유저가 입력한 password
//유저가 입력한password를 암호화 하여 암호화되어있는 비밀번호와 비교한다.
bcrypt.compare(plainPassword, this.password, function(err, isMatch){//bcrypt의 compare함수를 이용하여 user가 입력한 password와 비교한 후 결과를 isMatch(boolean)에 담아준다.
if(err) return cb(err), //err은 err정보를 담고있다
cb(null,isMatch)//isMatch == 'true'or false ?? <==요 부분이 궁금합니다.
})
}
따라서 index.js에서 user.comparePassword
if문 부분의 조건을 (isMatch === false)로 비교해서 return해야 하는것이 맞지 않는것인지 궁금합니다.
if(!isMatch)//여기 이상함 isMatch값은 boolean이와야하는데 왜 널이 아닌지를 비교하는지 이상
return res.json({loginSuccess: false, message:"비밀번호가 틀렸습니다."})
답변 1
1
John Ahn
지식공유자
안녕하세요 송근봉님 !
if(!isMatch) 부분은 null인지 아닌지 체크가 아닌 true인지 false인지를 체크해주고 있습니다.
if(true가 아니면) {}
이런식으로 풀어쓸수가 있습니다.
그리고
if(err) return cb(err), //err은 err정보를 담고있다
cb(null,isMatch)//isMatch == 'true'or false ?? <==요 부분이 궁금합니다.
그리고 이 부분에서는 return cb(err); 이런식으로 끊어주시면 됩니다. , => ; 이런식으로 바꿔주세요 ~!
수고하세요 ~!





