제출할 폴더 이름 : | 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
를 이용합니다.
-
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
-
잘못된 요청 시
- body
{ "msg" : "🍪 쿠키의 세상에 아무나 출입 할 수 없습니다!! 🍪", "reason": [ "???" // 해당하는 오류 항목 들을 추가 해주세요. ] }
- body
-
URL
/passport
-
Method
POST
-
Params
- None
-
Query
- None
-
Body - json
- username
- type: string
- username
-
Cookies
- None
-
발급 성공시
- body
{ "msg" : "🍪 여권 발급 성공! 🍪", "token" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjQyNDI0MjQyNDIsInVzZXJuYW1lIjoiamFlc2tpbSJ9.BMexiK1IQG8CQ8ckiI3kB3JsXArhZnAEZI0NFFYnCs4" }
- body
-
잘못된 요청 시
- body
{ "msg" : "🍪 여권 발급 실패! 🍪". "reason": [ "???" // 해당하는 오류 항목 들을 추가 해주세요. ] }
- body