ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #11 로그인 기능 with Bcrypt (1)
    Node.js/[챕터1] 2021. 6. 7. 23:30
    728x90
    index.js
    
    login 라우터를 생성
    
    
    app.post('/login', (req, res) =>{
    	//내용
    })

     

     

    [1] 요청된 이메일을 데이터베이스에서 있는지 찾는다.

    [2] 요청된 이메일이 데이터베이스에 있다면 비밀번호가 맞는 비밀번호 인지 확인.

    //1.요청된 이메일을 데이터베이스에서 있는지 찾는다.
      User.findOne({ email: req.body.email }, (err, user) => {
        if(!user){
          return res.json({
            loginSuccess : false,
            message : "제공된 이메일에 해당하는 유저가 없습니다."
          })
        }
        
        
        //2.요청된 이메일이 데이터베이스에 있다면 비밀번호가 맞는 비밀번호 인지 확인.
        user.comparePassword(req.body.password , (err, isMatch ) => {
          if(!isMatch)
          return res.json({ loginSuccess : false, message : "비밀번호가 틀렸습니다."})
    
          //3.비밀번호 까지 맞다면 토큰을 생성하기.
          user.generateToken((err,user) => {
    
          })
          
        })
        
        
      })
    models/User.js
    
    userSchema.methods.comparePassword = function(plainPassword, cb){
        //plainPassword 1234567 암호화된 비밀번호 $2b$rwekrjgjifdogjwe$2365
        bcrypt.compare(plainPassword, this.password, function(err, isMatch) {
            if(err) return cb(err),
                            cb(null, isMatch);
        })
    }

    userSchema.methods라는 몽구스 내장모듈로 함수를 등록해서 사용 할 수 있는것 같다.

    bcrypt.compare() 함수를 이용해서 암호화 함수를 비교한다.

    cb()함수는 콜백함수 인듯

    728x90
Designed by Tistory.