Skip to content

Latest commit

 

History

History
99 lines (88 loc) · 2.55 KB

ex01.md

File metadata and controls

99 lines (88 loc) · 2.55 KB

Exercise 01 - 🍪쿠키나라🍪의 토큰 출입 시스템!

제출할 폴더 이름 : ex01
제출할 파일 이름 : Express 프로젝트에 필요한 모든 파일
사용 가능한 외부 모듈 : express, jsonwebtoken, validator, dotenv, nodemon, Expressjs team에서 지원하는 middleware
참고사항 : 없음

최근 쿠키나라 에서 새로운 여권을 사용하게 되었습니다!

여러분 들은 jwt 형태의 여권을 발급 해주는 역할과 정상 적인 쿠키나라 의 여권인지 체크 하고 확인하는 기능을 구현 해야 합니다!

아래의 재약 사항을 지키면서 구현 해주세요!

제약 사항

  • JWT SECRET KEY는 code 내부에 raw로 작성되어 있으면 안됩니다.
  • expiraton 설정 하여야 합니다.
  • cookie의 만료시간과 exp는 동일 하여야 합니다.
  • jwt를 이용하여 인증하는 로직은 middle ware로 구현을 해야 합니다.
  • jwt의 payload 내부에는 반드시 username 필드가 있어야 합니다.

API 명세

  • URL /pass

  • Method GET

  • Params

    • None
  • Query

    • None
  • Body

    • None
  • Cookies

    • name: jwt_cookie
    • desc: jwt token
  • Cookie 조건이 맞을 시

    • body
      // jwt payload
      /*
      {
        'exp': 4242424242
        'username': 'jaeskim'
      }
      */
      {
        "msg" : "🍪 jaeskim님 쿠키의 세상에 오신 걸 환영 합니다~! 🍪"
      }
  • 잘못된 요청 시

    • body
      {
        "msg" : "🍪 쿠키의 세상에 아무나 출입 할 수 없습니다!! 🍪",
        "reason": [
          "token 검증 실패" // 해당하는 오류 항목 들을 추가 해주세요.
        ]
      }
  • URL /pass

  • Method POST

  • Params

    • None
  • Query

    • None
  • Body - json

    • username
      • type: string
  • Cookies

    • None
  • Cookie 조건이 맞을 시

    • header
      • Set-Cookie
        • jwt_cookie
          • username를 가지고 만들어진 jwt token
    • body
      {
        "msg" : "🍪 여권 발급 성공! 🍪",
      }
  • 잘못된 요청 시

    • body
       {
        "msg" : "🍪 여권 발급 실패! 🍪",
        "reason": [
          "???" // 해당하는 오류 항목 들을 추가 해주세요.
        ]
      }