프론트엔드 정복하기
Node_Bcrypt로 비밀번호 암호화 본문
1. user.js(schema 저장한 곳)에 bcrypt를 불러온다.
const bcrypt = require('bcrypt');
const saltRounds = 10; (10글자인 saltRounds 선언)
2.
userSchema.pre('save',function( next ){
var user=this; //this란 userSchema를 말함. 위에 있는 묶음들.
if (user.isModified('password')){ //email만 바꾸면 암호화되지 않고.. password를 바꿀때만!
//비밀번호를 암호화 시킨다.
bcrypt.genSalt(saltRounds, function(err, salt) {
if(err) return next(err) //만약 에러가 발생 > next(save단계)의 err로 간다.
bcrypt.hash(user.password, salt, function(err, hash) {
// 비밀번호 데이터베이스에 hash를 저장한다.
// hash가 암호화된 비밀번호임
if(err) return next(err)
user.password=hash
//유저의 비밀번호를 hash된 비밀번호로 바꿔주는 것이다.
next()
//모두 마친 후 next로 돌아감.
});
})
}else{
next()
}
})
1) index.js에서 'save' method를 실행하기 전(pre)에 다음의 function을 실행한다.
2) userSchema를 담은 user를 선언한다.
3) 만약 user(=userSchema)에서 password가 수정되면
4) bcrypt Salt를 생성한다.
5) 만약 에러 발생 > save 단계 중 err상태로 간다.
6) 그렇지 않으면 user 중 password를 hash화 한다.
7) 만약 에러 발생 > save 단계 중 err상태로 간다.
8) 그렇지 않으면 user 중 password를 hash화 한다.
9) 이제 save단계를 진행한다.
10) password 외에 다른 것이 수정되면
11) 고대로 save 단계로 진행한다.
'Node > Node_tool 사용법' 카테고리의 다른 글
Node_회원가입 라우터 (0) | 2020.05.16 |
---|---|
Node_Schema & Model (0) | 2020.05.16 |
Node_로그인 라우터(+쿠키 +comparePW + token) (0) | 2020.05.16 |
Node_비밀 설정 정보 관리 (0) | 2020.05.13 |
Node_tool 설치하기 (0) | 2020.05.12 |