ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Node.js - API 서버 ,CORS
    웹 개발/node.js 2023. 5. 26. 11:25

    API 서버란?

    - 다른 어플리케이션에서 현재 프로그램 기능을 사용할 수 ㅇㅆ도록함

    - 다른 웹 서비스의 기능을 사용하거나 자원을 가져올 수 있게 한다.

    - 다른 사람에게 정보를 제공하고자 하는 API만 연다.

    - API 서버는 별도의 서버이기 때문에, 메인 서버로부터 분리된 다른 서버이다. 따라서 서로 다른 포트 주소를 사용해야 한다. 

     

    서버 - api 관계도

    깃허브 참고하기 : 

     

     

    JWT 토큰 사용하기 

    - 토큰 기반 인증이란 사용자가 자신의 아이덴티티를 확인하고 고유한 액세스 토큰을 받을 수 있는 프로토콜을 말한다. 사용자는 토큰 유효 기간 동안 동일한 웹페이지나 앱, 혹은 그 밖에 해당 토큰으로 보호를 받는 리소스로 돌아갈 때마다 자격 증명을 다시 입력할 필요 없이 토큰이 발급된 웹사이트나 앱에 액세스할 수 있도록 한다.

     

    JWT 모듈 설치하기 

    npm i jsonwebtoken

     

    JWT 비밀키를 .env에 저장한다. 

    .env

    COOKIE_SECRET = NODEJS_COOKIE_SECRET
    KAKAO_ID = 5d4daf57becfd72fd9c919882552c4a6
    JWT_SECRET = jwtSecret

     

    미들 웨어 구성

    - JWT 토큰을 검사하는 verifyToken 미들웨어 만들기

     

     

    verifyToken 미들웨어 

    - JWT 토큰은 req.headers.authorization에 들어있다. 

    - 만료된 JWT 토큰인 경우에는 419 에러를 발생시키고, 유효하지 않은 토큰인 경우에는  401 에러를 발생시킨다.

    - req.decoded에 페이로드를 넣어서 다음 미들웨어에서 사용할 수 있도록 한다.

     

     

    호출 서버 만들기

    - NODEBIRD API를 호출하는 서버, 즉 호스트 서버이다.

    - 구분을 엄밀하게 해야하는게, 우리가 지금 만드는 서비스에는 총 3개의 서버들이 참여하고 있다. 하나는  

     

    package.json 설치하기

    npm init

     

    모듈 불러오기

    npm i axios cookie-parser dotenv express-session morgan nunjucks

     

    nodemon으로 scripts 설정을 하기 위한 모듈 불러오기 

    npm i -D nodemon

     

Designed by Tistory.