ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [node js] bcrypt를 이용하여 비밀번호 암호화 하기
    Node.js 2021. 3. 17. 21:42

    bcrypt란? A library to help you hash passwords.

     

    비밀번호를 db에 넣을 때, 그냥 넣지 않고 해시로 만들어 넣는다(보안을 위해)

     

    1) 터미널에 npm install bcrypt --save

    2) db 넣을 모델 파일에서 (userSchema 적용해 model 만든 상태)

    아래 코드를 입력한다.

    const bcrypt = require('bcrypt')
    const saltRounds = 10

    3) 비밀번호를 db에 save하기 전에 암호화를 시키고 save한다. (pre 메소드 활용)

    -아래는 공식 홈페이지에서 나온 사용법)

    bcrypt.genSalt(saltRounds, function(err, salt) {
        bcrypt.hash(myPlaintextPassword, salt, function(err, hash) {
            // Store hash in your password DB.
        });
    });

    -아래는 적용해보기

    userSchema.pre('save', function(next){
        
        var user = this
        if(user.isModified('password')){ // password 넣거나 수정할 경우
            bcrypt.genSalt(saltRounds, function(err, salt){
                if(err) return next(err)
                bcrypt.hash(user.password, salt, function(err, hash){
                    if(err) return next(err)
                    user.password=hash
                    next()
                })
            })
        }else{ //password 외의 값은 암호화 필요없음.
            next()
        }
    })
    

     

Designed by Tistory.