수업 영상 링크: link

  • due date:
  • 제출
    • 1가지 파일을 본인 Github에 올려주세요!

P1. 쿠키로 REST API 제어하기

세미나를 통해 REST API 서버를 구현할 수 있었습니다. 지금의 REST API 서버는 url만 알고 있다면, GET, POST, PUT, DELETE 모든 기능을 수행할 수 있는 상황입니다.

그러나 실무에선 데이터베이스에 더미값이 저장되거나 저장된 값이 훼손되는 것을 막기 위해서 GET을 제외하곤 모든 method의 접근은 인증을 거쳐야 사용할 수 있도록 디자인합니다.

  1. P1에선 이전에 HW5에서 구현한 http 서버를 Express 라이브러리를 이용해 다시 구현합니다.

  2. 구현한 음식 REST API에 대해 GET을 제외한 POST, PUT, DLETE method의 경우는 로그인한 사용자만 CRUD 기능을 이용할 수 있도록 서버에 인증 기능을 추가해봅시다!

  3. 인증 기능을 쿠키를 이용해 구현하는 경우, 쿠키 옵션에 Signed : True를 줘서 쿠키를 암호화 해주세요!


P2. 로그인 데이터베이스 구축

우리가 이번 세미나에서 구현한 서버은 오직 하나의 회원만이 로그인할 수 있는 서버입니다.

하지만, 실제 사이트는 로그인 뿐만 아니라 회원가입도 가능하며, 여러명의 회원을 만들 수 있습니다. 그리고 이런 회원 관리 기능은 회원 DB를 구축하여 쉽게 구현할 수 있습니다!

이번 HW7의 1번 문제에서 구현한 서버에서 회원 DB를 추가해봅시다.

구현할 기능은 다음과 같습니다.

  • 회원 DB 구축
    • 테이블은 user라는 이름으로 생성하고, 다음의 칼럼을 가지도록 디자인 해주세요.
      • id: Primary Key, auto increment
      • login_id: string, not null
      • login_pw: string, not null
  • 회원가입 기능 구현
    • 루트 페이지인 index.html 파일에 회원가입에 대한 <form>을 작성
    • 회원가입 버튼 클릭시, POST로 회원 DB에 유저 생성
  • 회원탈퇴 기능 구현
    • 로그인한 상태에서 회원탈퇴 버튼 클릭 시, DELETE로 회원 DB에서 유저 삭제
    • 이후 로그인 쿠키를 초기화
  • 비밀번호 업데이트(PUT)는 구현하지 않습니다.
  • 비밀번호 암호화
    • crpyto 라이브러리를 이용해 회원 DB에 저장되는 비밀번호를 모두 암호화한다!