현재 데이터베이스에 저장된 비밀번호를 보면 너무 안전하지 않음
-> 그래서 Bcrypt를 이용해 비밀번호 암호화 후 데이터베이스에 저장해야 함!
1. bcrypt 라이브러리 다운
npm install bcrypt --save
Bcrypt로 비밀번호 암호화 하는 순서
1. User.js에 bcypt라이브러리를 가져오고
2. usermodel에 정보를 저장하기 전 비밀번호를 암호화 시켜야 하기 때문에 User.js에 다음의 코드 추가
3. bcypt 사용을 위해 사이트 이동
https://www.npmjs.com/package/bcrypt
4. Salt 먼저 생성 후 Salt를 이용해 비밀번호를 암호화해야 한다. Salt전에는 saltRounds(salt가 몇글자인지를 나타냄) 을 지정해야 한다.
User.js에서 saltRounds를 지정한다.
User.js에 다음의 코드 추가
비밀번호를 바꿀 때만 암호화하도록 하기 위해 다음의 코드 추가
if (user.isModified("password")) {} else { next() }
완성된 User.js이다.
PostMan에서 회원가입 시도하기
npm run start를 통해 서버를 가동시킨 후 postman에 다음과 같이 입력하고 send를 누르면 success:true가 반환된다.
MongoDB로 들어와 cluster의 collections에서 방금 들어온 데이터베이스를 확인할 수 있다.
전에 넣은 데이터베이스는 password가 암호화되지 않은 채로,
방금 넣은 데이터베이스는 password가 암호화된 채로 들어온 것을 확인 가능하다.
'JavaScript, React 🍦 > [Node React]노드리액트기초강의' 카테고리의 다른 글
[NodeJS][노드 리액트 기초 강의 #11] 로그인 기능 with Bcrypt (1) (0) | 2023.01.09 |
---|---|
[NodeJS][노드 리액트 기초 강의 #9] 비밀 설정 정보 관리 (0) | 2023.01.04 |
[NodeJS][노드 리액트 기초 강의 #8] Nodemon 설치 (0) | 2023.01.03 |
[NodeJS][노드 리액트 기초 강의 #7] BodyParser & Postman & 회원 가입 기능 (0) | 2023.01.03 |
[NodeJS][노드 리액트 기초 강의 #6] SSH를 이용해 GITHUB 연결 (0) | 2023.01.03 |