TIL 13주차 1일 - [Sprint]auth-session

Sang heon lee·2021년 9월 7일
0

TIL 리스트

목록 보기
50/60
  1. 환경 변수 설정

1.1 목표

  • 시작하기에 앞서 .env.example 파일이름을 .env로 바꾼다음 데이터베이스 관련 환경변수를 설정해야 합니다.

1.2 작업

  • env (아이디, 비번) 내용 작성
  • db 수동으로 생성
  1. 데이터베이스 마이그레이션

2.1 목표

  • 시퀄라이즈 마이그레이션 및 시드를 적용하거나 직접 데이터베이스를 수정해야 합니다. 시퀄라이즈 마이그레이션 및 시드를 적용하는 방법은 공식 문서를 확인해 보세요.

2.2 작업

// Running Migrations
npx sequelize-cli db:migrate

// Running Seeds
npx sequelize-cli db:seed:all
  1. 서버 구현

3.1 목표

A. index.js

발급받은 https 인증서를 해당 스프린트 디렉토리에 복사합니다. 쿠키 설정은 HTTPS를 사용하는 것을 고려하여 설정하세요.
index.js에서 CORS 및 세션 옵션을 설정합니다.

B. controller/login.js (POST /users/login)

request로부터 받은 userId, password와 일치하는 유저가 DB에 존재하는지 확인합니다.
일치하는 유저가 없을 경우:
로그인 요청을 거절합니다.
일치하는 유저가 있을 경우:
세션에 userId를 저장합니다.

C. controller/logout.js (POST /users/logout)

세션 객체에 저장한 값이 존재하면
세션을 삭제합니다. (자동으로 클라이언트 쿠키는 갱신됩니다)

D. controller/userinfo.js (POST /users/userinfo)

세션 객체에 저장한 값이 존재하면
사용자 정보를 데이터베이스에서 조회한 후 응답으로 전달합니다.
세션 객체에 저장한 값이 존재하지 않으면
요청을 거절합니다.

3.2 작업

A. index.js

발급받은 https 인증서를 해당 스프린트 디렉토리에 복사합니다. 쿠키 설정은 HTTPS를 사용하는 것을 고려하여 설정하세요.
index.js에서 CORS 및 세션 옵션을 설정합니다.

B. controller/login.js (POST /users/login)

request로부터 받은 userId, password와 일치하는 유저가 DB에 존재하는지 확인합니다.
일치하는 유저가 없을 경우: 로그인 요청을 거절합니다.
일치하는 유저가 있을 경우: 세션에 userId를 저장합니다.

  • 레퍼런스 코드와의 차이점 확인하자
    res.send // res.json

C. controller/logout.js (POST /users/logout)

세션 객체에 저장한 값이 존재하면
세션을 삭제합니다. (자동으로 클라이언트 쿠키는 갱신됩니다)

  • 레퍼런스 코드와의 차이점 확인하자
    res.send // res.json

D. controller/userinfo.js (POST /users/userinfo)

세션 객체에 저장한 값이 존재하면 사용자 정보를 데이터베이스에서 조회한 후 응답으로 전달합니다.
세션 객체에 저장한 값이 존재하지 않으면 요청을 거절합니다.

  • 레퍼런스 코드와의 차이점 확인하자
    res.send // res.json
  1. 클라이언트 구현
  • components/Login.js

  • components/Mypage.js

profile
개초보

0개의 댓글