-
[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() } })
'Node.js' 카테고리의 다른 글
[node js] node js와 몽고 DB연결하기 (0) 2021.03.17 [node js] nodejs 시작, 로컬호스트 서버 돌려보기 (0) 2021.03.17