관리 메뉴

프론트엔드 정복하기

Node_Bcrypt로 비밀번호 암호화 본문

Node/Node_tool 사용법

Node_Bcrypt로 비밀번호 암호화

GROWNFRESH 2020. 5. 13. 21:39

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