노드&리액트 공부기록(7) - bscrypt 사용, 비밀번호 암호화하여 DB 저장하기, 로그인 만들기
my code archive
article thumbnail
반응형

지난번에 만든 회원가입에서는 데이터베이스에 비밀번호가 그대로 저장됐다.

이번에는 DB에 비밀번호를 더 안전하게 저장하기 위해 bscrypt 를 이용해 비밀번호를 암호화한 다음 DB에 저장해 보도록 한다.

 

🤍비밀번호  암호화하여 DB 저장하기

1. bscrypt 설치

npm install bscrypt --save

 

2. npm 사이트 참고하여 User.js에 코드 작성

user 모델을 저장하기 전에 암호화를 하겠다.

  • 그런데 매번 암호화를 하는 것은 번거로우므로, 비밀번호 변경 시에만 암호화되고 email 변경 시에는 비밀번호 암호화가 반복되지 않도록 조건을 걸어준다.

next라는 파라미터를 넣어주고 next 호출

  • 사용자의 비밀번호가 변경되었을 때에만 salt를 생성시켜준다는 문법의 genSalt 사용하여 에러가 있다면 next(err)를 띄우고 그게 아니라면 bscrypt.hash에서 사용자의 비밀번호가 =hash로 암호화된다는 것을 나타냄.

 

3. 회원 가입 후 DB를 확인해 보면 암호화되어있다.


🤍로그인 만들기

  • 1. 요청된 이메일을 데이터베이스에서 있는지 찾는다.
  • 2. 요청된 이메일이 데이터베이스에 있다면 비밀번호가 맞는지 확인한다.
  • 3. 비밀번호까지 일치한다면 토큰을 생성한다.

 

쿠키에 저장하기 위해 cookie-parser 설치

npm install cookie-parser --save

 

토큰 생성하기 위해 jsonwebtoken 설치

npm install jsonwebtoken --save

 

postman으로 로그인을 시도해보면....

 

에러가 난다..ㅎㅎ 확인 필요ㅠㅠ삽질중...

반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형