1. 설치
npm i bcrypt --save // 일단 설치한다.
아래의 링크를 타고가면 bcrypt 사용하는 방법에 대해 나오는데,
www.npmjs.com/package/bcrypt#usage
2. 설정
다음은 bcrypt 사용에 기본적으로 필요한 코드이고, 위 페이지에서 가져왔다.
const bcrypt = require('bcrypt');
const saltRounds = 10;
const myPlaintextPassword = 's0/\/\P4$$w0rD';
const someOtherPlaintextPassword = 'not_bacon';
먼저 우리가 만든 User모델에 위의 코드를 붙혀넣기 하고, 우리가 생성한 schema의 pre메소드를 사용해서
save 메소드( => 이전 게시글 참고)가 실행되기 전에 비밀번호를 암호화하는 로직이 수행되도록 하자.
userSchema.pre('save', function(next) { //'save' 메소드가 실행되기 전에 콜백함수를 실행한다는 뜻.
var user = this; // this 바인딩 해주고
if (user.isModified('password')) { //패스워드가 변경되었다면
bcrypt.genSalt(saltRounds, function (err, salt) { // bcrypt를 통해 salt값 생성
if (err) {
return next(err);
}
bcrypt.hash(user.password, salt, function(err, hash) { pw와 salt값을 넣어 해시값 생성
if (err) {
return next(err);
}
user.password = hash; // 암호화된 패스워드를 저장해준다.
next();
});
});
} else {
next();
}
});
이 로직이 다 수행되면 결과를 save 메소드에서 받아 유저 계정을 생성하게 된다.
'Web > Node.js' 카테고리의 다른 글
Node.js(express.js) 회원가입 (0) | 2020.11.28 |
---|---|
Node.js x 몽고DB(MongoDB) Schema 정의하기 (0) | 2020.11.26 |
Node.js에 몽고DB연결하기 (feat. Mongoose) (0) | 2020.11.26 |
Node.js 시작하기( Node, express 설치) (0) | 2020.11.24 |