본문 바로가기
Portfolio/Node, React login page

login page algorithm

by 일상코더 2022. 9. 4.

1. 패키지 설치


       - node js 다운로드 npm init
       - express js 다운로드 npm install express --save
       - index.js파일 만들기
       - index.js 에 기본적인 express js app 구현
       - mongoose 설치 및 연결
       - db 모델, 스키마 생성

2. 회원가입 기능 만들기
       - register 라우터 생성
       - client - server 통신할 body-parser 다운로드 npm install body-parser --save
       - body-parser options(urlencoded or json) 추가
       -모델 User 객체(인스턴스) user 생성
       - mongoDB의 document 메서드 save 이용해서 err, userInfo 를 각각 실패, 성공 할때 json 형식으로 넘겨줌

nodemon 설치
 
       -소스를 변경할때 바로 감지해서 자동으로 서버를 재 시작해주는 nodemon 다운로드 npm install nodemon --save -dev
       -dev = local모드,  production 모드중에 local모드에서만 실행 하기위해서 사용
       -script 하나더 만들기 "이름자유" : "nodemon index.js"

3. 비밀 설정 정보 관리


       - .gitignore파일 생성 (node_module, dev.js 넣어줌)
       - config폴더 안에 dev.js, key.js, prod.js 파일 추가
       - key.js 에서 local(dev), production 모드 분기 처리

4. 비밀번호 암호화

bcrypt 다운로드 npm install bcrypt --save
       - mongoDB 의 document메서드 pre 이용해서 비밀번호 암호화 시키기
       - bcrypt 불러오고 salt rounds(글자 개수) = number
       - genSalt 함수를 이용해서 salt생성
       - hash 함수를 이용해서 비밀번호 암호화
       - next()를 이용해서 user.save로 돌려보내줌

5. login 기능 구현

       - login 라우터 생성 
       - 데이터 베이스에서 요청한 email 찾기 
       - mongoDB 의 model 메서드 findOne을 이용해서 email찾기

       - 데이터 베이스에서 요청한 email이 있다면 비밀번호가 같은지 확인
       - comparePassword 메서드 구현
       - bcrypt의 compare 함수를 이용해서 plainPassword 와 db에 암호화된 this.password가 같은지 비교
       - 틀리면 err 맞으면 ismatch로 넘겨줌

       - 비밀번호 까지 같다면 Token 생성
       - generateToken 메서드 구현
       - jsonwebtoken 다운로드 -  npm install jsonwebtoken --save
       - token생성해서 user로 넘겨줌
       - token 생성 실패 err 메세지
       - token 생성 성공 쿠키에 저장
       - cookie-parser 다운로드 - npm intall cookie-parser --save
       - app.use  cookieparser 추가
       - x_auth 에 user.token 넣어줌


6. Authentication(증명, 입증, 인증) 구현

       - auth 라우터 생성
       - 라우터(endpoint)를 만나고 req, res 콜벡으로 넘어가기전에 중간단계인 auth를 거친다.
       - 인증을 처리하기 위한 middleware 폴더 생성 및 auth.js 파일 생성
       - 로그인했을때 client cookie에는 암호화된 x_auth : 토큰이 저장되있다.
       - server(db) 저장된 토큰을 복호화 시키면 user._id가 나온다.
       - findByToken 메서드 구현
       - 해당 user._id가 가진 토큰과 cookie에 저장된 토큰이 일치하면 인증 성공 아니면 실패
       - json 형식으로 정보 출력

7. logout 기능 구현

       - logout Route 생성
       - logout 하려는 유저를 데이터베이스에서 찾는다.
       - findOneAndUpdate 메서드 이용
       - 그 유저의 토큰을 지워 준다. 

'Portfolio > Node, React login page' 카테고리의 다른 글

Node Document  (0) 2022.09.04

댓글