반응형
지난번에 만든 회원가입에서는 데이터베이스에 비밀번호가 그대로 저장됐다.
이번에는 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으로 로그인을 시도해보면....
에러가 난다..ㅎㅎ 확인 필요ㅠㅠ삽질중...
반응형
'💻 my code archive > 💜React.js' 카테고리의 다른 글
노드&리액트 공부기록(11) - CORS 이슈, Proxy로 해결하기 (0) | 2022.03.01 |
---|---|
노드&리액트 공부기록(10) - bolier-plate 기반의 구조로 변환하기 (0) | 2022.03.01 |
노드&리액트 공부기록(9) - 리액트란?, Real Dom , Virtual Dom, React 설치, npx, npm 차이점 (0) | 2022.03.01 |
노드&리액트 공부기록(8) - Auth 기능, 로그아웃 만들기 (0) | 2022.02.28 |
노드&리액트 공부기록(6) - nodemon 설치하기 (0) | 2022.02.27 |