-
#11 로그인 기능 with Bcrypt (1)Node.js/[챕터1] 2021. 6. 7. 23:30728x90
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'Node.js > [챕터1]' 카테고리의 다른 글
#13 Auth 기능 만들기 (0) 2021.06.08 #12 토큰 생성 with jsonwebtoken (0) 2021.06.07 #10 Bcrypt로 비밀번호 암호화 하기 (0) 2021.06.07 [8]#9 비밀 설정 정보 관리 (0) 2021.04.30 [7]#8 Nodemon 설치 (0) 2021.04.29