HomeWork 7
수업 영상 링크: link
- due date:
- 제출
- 1가지 파일을 본인 Github에 올려주세요!
P1. 쿠키로 REST API 제어하기
세미나를 통해 REST API 서버를 구현할 수 있었습니다. 지금의 REST API 서버는 url만 알고 있다면, GET, POST, PUT, DELETE 모든 기능을 수행할 수 있는 상황입니다.
그러나 실무에선 데이터베이스에 더미값이 저장되거나 저장된 값이 훼손되는 것을 막기 위해서 GET을 제외하곤 모든 method의 접근은 인증을 거쳐야 사용할 수 있도록 디자인합니다.
-
P1에선 이전에 HW5에서 구현한
http
서버를Express
라이브러리를 이용해 다시 구현합니다. -
구현한 음식 REST API에 대해 GET을 제외한 POST, PUT, DLETE method의 경우는 로그인한 사용자만 CRUD 기능을 이용할 수 있도록 서버에 인증 기능을 추가해봅시다!
-
인증 기능을 쿠키를 이용해 구현하는 경우, 쿠키 옵션에 Signed : True를 줘서 쿠키를 암호화 해주세요!
P2. 로그인 데이터베이스 구축
우리가 이번 세미나에서 구현한 서버은 오직 하나의 회원만이 로그인할 수 있는 서버입니다.
하지만, 실제 사이트는 로그인
뿐만 아니라 회원가입
도 가능하며, 여러명의 회원을 만들 수 있습니다. 그리고 이런 회원 관리 기능은 회원 DB를 구축하여 쉽게 구현할 수 있습니다!
이번 HW7의 1번 문제에서 구현한 서버에서 회원 DB를 추가해봅시다.
구현할 기능은 다음과 같습니다.
- 회원 DB 구축
- 테이블은
user
라는 이름으로 생성하고, 다음의 칼럼을 가지도록 디자인 해주세요.id
: Primary Key, auto incrementlogin_id
: string, not nulllogin_pw
: string, not null
- 테이블은
- 회원가입 기능 구현
- 루트 페이지인
index.html
파일에회원가입
에 대한<form>
을 작성 - 회원가입 버튼 클릭시,
POST
로 회원 DB에 유저 생성
- 루트 페이지인
- 회원탈퇴 기능 구현
- 로그인한 상태에서
회원탈퇴
버튼 클릭 시,DELETE
로 회원 DB에서 유저 삭제 - 이후 로그인 쿠키를 초기화
- 로그인한 상태에서
- 비밀번호 업데이트(
PUT
)는 구현하지 않습니다. - 비밀번호 암호화
crpyto
라이브러리를 이용해 회원 DB에 저장되는 비밀번호를 모두 암호화한다!