[웹] Node.js & React 회원관리 - 3

또여·2021년 6월 21일
0

노드 리액트 강의

목록 보기
3/5

1. nodemon

수정되는 내용을 반영시킬 때, 서버를 내리지 않아도 되도록 도와주는 dependency

npm install nodemon --save-dev
-dev를 붙이는 이유는 개발에서만 적용되도록하기 위함

package.json파일에 scripts로 서버를 올릴때 기본적으로
npm run start라고 하지만, 설치한 nodemon을 이용하려면,
라인8번과 같이 추가해주고
npm run backend 라고 해주면 되겠다

이런게 있다는 사실정도만 알아도 될듯 하다

2. bcrypt

https://www.npmjs.com/package/bcrypt

비밀번호를 암호화해서 DB에 저장해줘야하는데 사용하는 것

npm install bcrypt --save

간혹가다가 설치가 안되는 경우가 있어서 구글링을 많이 한 부분임
uninstall도 하고 @3.0.6 을 붙여서 버전에 맞게 설치하기도 하고 python 뭐 설치하기도 해봄. 내가 시도한 부분은 따로 정리해야할 필요가 있음

앞서서 user.save를 통해서 저장을 하는데, 저장하기 직전에 암호화를 해줘야한다

User.js에서 userSchema.pre('save')라고 함수를 시작하면, save함수를 타기 전에 수행하고, 다 끝나면 본 함수를 타기 시작함

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

userSchema.pre('save', function(next) {
    var 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()
            })
        })
    } else{
        next()
    }
})

myPlaintextPassword 는 사용자가 작성한 비밀번호
소스에 isModified는 password만 바뀌었을 때, 암호화시켜주는 것

Usage에 있는 내용을 참고하면서 작성한다

확인하기

postman으로 다시 register를 호출하면 아래처럼 password가 암호화되어서 저장된게 보이면 성공!

profile
기록 열심히하는 개발자인척

0개의 댓글