Node JS, Express JS 시작하기 #8

박동규·2021년 4월 29일
0

해당 글은 인프런 John Ahn님의 노드, 리액트 시리즈 강좌를 학습하여 정리한 내용입니다.


Becrypt 라이브러리

비밀번호가 그대로 노출되지 않도록, DB에 저장할 때도 관리자가 사용자의 비밀번호를 직접 확인할 수 없도록 암호화를 해야한다.

npm install bcrypt --save

save로 저장되기 전에 비밀번호를 암호화 하는 작업을 수행해야 한다. 이를 위해 mongoose의 기능을 이용한다.

User.js에 해당 부분을 추가해준다.

이제 Becrypt를 가져와서 사용하자.
https://www.npmjs.com/package/bcrypt 에 접속하면 사용방법을 확인할 수 있다.
기본 사용법이다. 해당 부분을 로직에 맞게 수정하여
코드에 추가해주고,
becrypt를 가져오고 saltRounds를 설정해준다.

saltRounds란, salt를 이용해서 비밀번호를 암호화 해야하는데, salt를 먼저 생성해야한다. saltRounds에 설정된 값으로 salt의 글자수를 결정한다.
( 10자리인 salt를 만들어서 이를 이용해 비밀번호를 암호화 한다 )

이렇게 작업을 끝내면 문제가 발생한다. 비밀번호를 변경할 때도 있고, 이름이나 이메일을 변경할 때도 있는데, 비밀번호가 아닌 무언가를 변경할때마다 비밀번호를 무조건 암호화 하는 문제가 있다.

이를 해결하기 위해, 비밀번호가 변경될 때만 비밀번호를 암호화 시키는 작업을 하게끔 설정해준다.

postman을 통해 테스트용 데이터를 넣고, 확인해보면
비밀번호가 암호화되어 저장됨을 확인할 수 있다.

0개의 댓글