본문 바로가기

공부/타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js)

프로젝트: Node.js 기반의 REST API 구현(5)-users.js-컨트롤러, crypto

✨ver1의 설계로 DB, Node.js 코드 구현해보기

 

Node.js 패키지(파일) 구조

app.js는 프로젝트의 메인 라우터 역할

routes안의 파일들은 하위 라우터 역할

💢하지만 지금 파일 구조는 하위 라우터 안에서 경로역할 뿐만아니라 로직까지 구현되어있다.
안되는건 아니지만, 파일 하나에 코드가 길어질수록 유지보수가 어려워지므로
코드구현된 부분은 다른 파일로 나눠서 모듈화 시키는 것이 좋다❗💢

🔸프로젝트 규모가 커질수록, 코드가 길고 복잡
🔸가독성이 떨어짐
🔸트러블 슈팅 어려움
=> 유지보수가 어려움
cf. 유지보수란? 오래된 코드 운영, 요구사한 반영, 에러해결 ... 

 

컨트롤러

프로젝트에서 매니저 역할을 하는 파일

 

⬇️컨트롤러에 jwt sign으로 token을 cookie에 넣어 response로 보내준 코드

 

🗝️암호화하기

node.js에서 기본 내장으로 가지고 있는 crypto를 사용해서 비밀번호를 암호화하기

지금 짜여진 암호화는 단방향 암호화 방식..

 

✨해결 할 수 있는 방법은 2가지

  1. salt값을 randomBytes()가 아닌 고정값으로 가지고오기
  2. salt값을 db에 같이 저장시키기
2번 방법
회원가입시 비밀번호를 암호화해서 암호화된 비밀번호 AND salt 값을 같이 저장

로그인 시, 이메일&비밀번호(비암호화) => salt값 꺼내서 비밀번호 암호화 해보고 db 비밀번호랑 비교

POSTMAN으로 잘 들어오는것도 확인❗

 

초기화 수정에서도 암호화 코드를 구현해준다❗❗