#10 Bcrypt로 비밀번호 암호화 하기

2022. 8. 3. 14:02TIL/따라하며 배우는 노드 리액트

728x90
[인프런] 따라하며 배우는 노드, 리액트 시리즈 - 기본강의를 들으며 정리한 내용입니다.

 

 

 

데이터를 받은 그대로 저장하면 안전하지 않기때문에 Bcrypt를 이용하여 비밀번호를 암호화 한 뒤 데이터 베이스에 저장해 줘야 한다.

 

  1. Bcrypt 설치하기 npm install bcrypt --save
  2. models/User.js 파일 수정 (bcrypt 사용방법 참고)
const bcrypt = require('bcrypt');
const saltRounds = 10 //salt의 글자 수

userSchema.pre('save', function(next){
	//user가 저장되기 전에 실행되는 함수
	
	const user = this;

	if(user.isModified('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() //register route의 user.save 함수 실행
			})
		})
	}
}