• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

콜백함수가 헷갈려서 질문 드립니다!

22.01.13 16:09 작성 조회수 159

0

index.js에서 user.comparePassword를 호출할 때

req.body.passwod로 비밀번호를 인자로 전달하고

뒤에 err, isMatch는 comparePassword 메소드에서

cb(err)과 cb(null, isMatch)로 받아와서

비밀번호가 틀렸습니다 쪽으로 넘어가는 것 같은데

제가 이해한 게 맞을까요...??

답변 1

답변을 작성해보세요.

2

안녕하세요 !!! 

1) user.comparePassword(req.body.password  

2)

//plainPassword 1234567 암호회된 비밀번호 $2b$10$l492vQ0M4s9YUBfwYkkaZOgWHExahjWC
bcrypt.compare(plainPassword, this.password, function (err, isMatch) {
if (err) return cb(err);
cb(null, isMatch)

3)

(err, isMatch) => {
// console.log('err',err)

// console.log('isMatch',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 })
})
}) 

이러한 순서로 됩니다 ! 

MG K님이 말씀해주신게 맞습니다 ! 

huhu님의 프로필

huhu

질문자

2022.01.18

감사합니다!!