Skip to content
This repository was archived by the owner on Sep 8, 2021. It is now read-only.

Latest commit

 

History

History
98 lines (88 loc) · 2.62 KB

ex02.md

File metadata and controls

98 lines (88 loc) · 2.62 KB

Exercise 02 - 🍪쿠키나라🍪의 passport 시스템!

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

최근 쿠키나라 에서 전세계 공용으로 사용되는 passport-jwt 를 사용하기로 하였습니다!

여러분들은 아래의 사항을 지켜서 구현해 주세요!

제약 사항

  • JWT SECRET KEY는 code 내부에 raw로 작성되어 있으면 안됩니다.
  • expiraton을 설정 하여야 합니다.
  • 인증유저를 구분하는 로직은 middle ware로 구현을 해야 합니다.
  • jwt의 payload 내부에는 반드시 username 필드가 있어야 합니다.
  • passport-jwt 검증하는 로직에서 rea.user 에 payload가 주입되어야 합니다.
  • Token 전달 방식은 Bearer Authentication 를 이용합니다.

ℹ️ https://datatracker.ietf.org/doc/html/rfc6750

API 명세

  • URL /passport

  • Method GET

  • Params

    • None
  • Query

    • None
  • Body

    • None
  • Header

    • Authentication
  • Cookies

    • None
  • Authentication 성공시

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

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

  • Method POST

  • Params

    • None
  • Query

    • None
  • Body - json

    • username
      • type: string
  • Cookies

    • None
  • 발급 성공시

    • body
      {
        "msg" : "🍪 여권 발급 성공! 🍪",
        "token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQyNDI0MjQyNDIsInVzZXJuYW1lIjoiamFlc2tpbSJ9.BMexiK1IQG8CQ8ckiI3kB3JsXArhZnAEZI0NFFYnCs4"
      }
  • 잘못된 요청 시

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